Programozási nyelv kiválasztásának szempontjai programozás tanulásához?

Azt szeretném kideríteni, hogy ha programozást tanulna valaki, akkor a tanuláshoz használt programozási nyelv kiválasztásánál milyen szempontokat érdemes figyelembe venni?

Hozzászólások

subscribe. Miccsoda metatopik. :-)

Várom már a programozásinyelv-tanuláshoz kiválasztott első programozási nyelv kiválasztásakor figyelembe vett szempontok kiválasztásának szempontjairól mikor lesz bejegyzés :-)

Mán egy hete nem volt ugyanez valamilyen címen.

Trey igazán kitehetne egy párat ugyanebből a főoldalra -- a topon simán elférne 1-2. A demokrácia jegyében cserélődhetnének a legfrissebben nyitottra, amennyiben elérik (mi az hogy!) a 100 hozzászólást.
A legtöbb distinct néven megnyitni képes kollégát pedig pólóval kéne jutalmazni; szurokkal színezve, tollal díszítve.

Ahol van kultúrája a nyelvoktatásnak, ott általában egy fp/deklaratív jellegű "oktatónyelvet" tartanak a háznál (lásd karbantartó oktatási intézmények). Beszédes, hogy ez általában nem asm, hla, sőt nem is c -- hanem gyakran lisp, scheme, racket, ml, prolog, occam, haskell ...vagy kifejezetten oktatónyelv, mint eredetileg a py.

Kár, hogy Mo-n nincsen ilyen kulturális hagyomány. Ha valóban az oktatás a cél, akkor stklos v. racket, esetleg py de inkább sbcl. Utána a gcc/llvm/jvm meg az imperatív család már szinte magától értetődő lesz -- fordítva ez nem feltétlenül igaz valami miatt, sőt.

Egyébként a szempontok kiválasztása rém egyszerű: mik azok a "paradigmák", amiket a nyelv támogat és amikre a nyelv épül. A legszélesebb látókört az lisp család adja, nem véletlenül vesznek át egyre több elemet a c meg a java-szerűségek.

A java az IEEE (Terman) curriculum lobbi miatt történt, nem az oktatás szempontjai voltak érdekesek -- nem először

"Programs must be written for people to read, and only incidentally for machines to execute."

- Abelson & Sussman, SICP, preface to the first edition

"We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp."

- Guy Steele, Java spec co-author

ami meg a közvetlenül használhatóságot illeti:

http://www.charlespetzold.com/etc/doesvisualstudiorotthemind.html

http://www.cs.berkeley.edu/~bh/61a.html

Mi is az a lista, amit a java kapott a lisp-től ill. amit a java kap a lisptől???

-8<----

2. In the original Java white paper, Gosling explicitly says Java was designed not to be too difficult for programmers used to C. It was designed to be another C++: C plus a few ideas taken from more advanced languages. Like the creators of sitcoms or junk food or package tours, Java's designers were consciously designing a product for people not as smart as them. Historically, languages designed for other people to use have been bad: Cobol, PL/I, Pascal, Ada, C++. The good languages have been those that were designed for their own creators: C, Perl, Smalltalk, Lisp.

3. It has ulterior motives. Someone once said that the world would be a better place if people only wrote books because they had something to say, rather than because they wanted to write a book. Likewise, the reason we hear about Java all the time is not because it has something to say about programming languages. We hear about Java as part of a plan by Sun to undermine Microsoft.

http://www.paulgraham.com/javacover.html

we were after the C++ programmers: értsd MFC

Likewise, the reason we hear about Java all the time is not because it has something to say about programming languages.

-> a C# és a .NET keretrendszer mit hoznak mint nyelvi újdonságot?

Microsoft argued that Blackbird development would be cross-platform, since OLE support had already existed on Macintosh and there was work in progress on porting it to Unix systems. To guarantee security, the company planned to act as a certifying authority for OLE controls (OCXs), and encourage third parties to be certifying authorities. -- Wingfield, Nick (November 20, 1995). "Java brews trouble for Microsoft". InfoWorld.

bónusz -> pdf

Resources to Support the Use of Java in Introductory Computer Science -- Eric Roberts, Stanford University ->

To this end, the ACM Education Board has initiated a new project with the following general charter:
To review the Java language, APIs, and tools from the perspective of introductory computing education and to develop a stable collection of pedagogical resources that will make it easier to teach Java to first-year computing students without having those students overwhelmed by its complexity.

Computing Curricula 2001: Final Report of the Joint ACM/IEEE-CS Task Force on Computer Science Education. Los Alamitos, CA: IEEE Computer Society Press, December 2001.

A kettő miért zárja ki egymást?

Ilyen az általános ködösítési technika, gyakori az áltudományban -- miért fogjuk méltatni Eric Roberts-et pl. Brian Harvey-al szemben? Ezért sem jelent már semmit, hogy valaki az egyetemen tanult meg egy nyelvet vagy sem -- sőt, inkább már baj, ha csak ott tanulta.

Egyébként a jvm maga viszont a világon az egyik legjobb vm (talán az is, a legtöbb tekintetben).

"Egyébként a jvm maga viszont a világon az egyik legjobb vm (talán az is, a legtöbb tekintetben)."
Valamint ne feledjük, hogy a Java volt az első olyan programozási nyelv, amiben definiálták a memory modelt, azaz a többszálú számítások szemantikáját.
Ezt persze szinte egy az egyben vette át a C++ a C++11-es szabványba.
Szóval annak ellenére, hogy nem szereted, a Java bizony tett hozzá a programozási nyelvekhez.
C-ben persze nincs memory model, mert maga a C nyelv nem is ismeri a többszálúságot, mint nyelvi elemet, pedig fontos lenne, a különféle thread libek szemantikája pedig aluldefiniált.

Ki tanul (eletkor, iq, eq, tapasztalotok barmivel ami kicsit hasonlit a programozashoz)?
Mire kell neki?
Mit fog a jovoben hasznalni meg ezen kivul?
Mennyi ideje van ra?
Milyen gyorsan szeretne eredmenyt latni?
Mit van lehetosege normalis korulmenyek kozott tanulni?

a szempotok szama vegtelen... :P

még:
- mennyire jól olvasható a kód
- mennyire ad a piacon használható tudást (erre lehet azt mondani, hogy az elején nem szempont, de motiváció szempontjából szerintem fontos lehet, hogy meg tudod mutatni, hogy ezt meg ezt is ebben a nyelvben csinálják, szóval ez egy élő problémamegoldásban elterjedt valami.)