Milyen programozási nyelvet válasszon az ember 2017-ben?

Címkék

Az év elején tette közzé a TIOBE a "legkeresettebb/legtrendibb" programozási nyelvek listáját, ami számos fórum első hozzászólásától kezdődően indított heves vitákat a módszerükről, majd áttételesen a programozási nyelvekről és sok egyébről.

Talán ennek apropóján, a Codingame összegyűjtötte, hogy hányan hányféleképpen rangsorolják az egyes programozási nyelveket és rangsorolta ezeket a rangsorokat. Na jó, nem rangsorolta őket, pedig nyugodtan megtehette volna, inkább meghagyta az olvasóknak, hogy mindenki kiválaszthassa azt a módszertant, ami szerint a kedvenc programozási nyelve a legjobb, hadd fogyjon még abból a pattogatott kukoricából.

Hozzászólások

A lényegi kiindulóparaméter szerintem az lenne, hogy "tarháér' vagy élvezetbül" akar az ember programnyelvet tanulni? Mert ha megélhetési motivációból, akkor leginkább valóban a Trey által megmért rangsor stimmel. Ha viszont a felfedezés és a kihívás öröméért, akkor hajrá bármilyen obskurus és elvarázsolt cuccnak.

Szerintem nyugodtan lehet megélhetési motivációból is javascriptet vagy lispet és sok egyéb (de azért természetesen nem bármilyen) elvarázsolt nyelvet tanulni. Kinek mi a legrokonszenvesebb. Aztán nyugodtan lehet a munkaerőpiac állapotától függően váltani, sőt előbb/utóbb valószínűleg kell is.

_______Peter
I am a stone. I do not move.

Budapest: Java

Békéscsaba: PHP

Ok:
Nem valószínű hogy pl. Scala tudással munkát kapsz Békéscsabán, de egy PHP programozót lehet, hogy fog tudni valamelyik cég alkalmazni a saját, vagy ügyfeleik weboldalának fejlesztésére.

Budapesten valószínűbb, hogy Scala-val találsz munkát, de Java-val szinte biztos, hogy lesz olyan cég, ahol igényt tartanak a tudásodra.

Nekem pl szempont az is, hogy milyen kaliberu feladatokan dolgozhatok. Az a gyanum, hogy Bekescsaban valoszinu napi 10 latogatot szamlalo weboldalakat kell reszelni, mig Budapesten mondjuk a legfrissebb technologiakkal dolgozva, vezeto IT cegeknek kell pl elosztott rendszereket fejleszteni. Amilyen nyelvet valasztasz tanulasra az meghatarozza a munkak minoseget, illetve a munkaeropiaci versenyhelyzetet. En eleg hamar kiszalltam a php-s vilagbol. Nem volt kedvem versenyezni a sok bot csinalta fejlesztovel (en a specifikaciot sem irtam meg annyiert, amennyiert o elvallalta az egeszet), nem volt kedvem ugyanazokat a feladatokat megoldani oldalrol-oldalra. Valtottam es hamar eszrevettem, hogy nem azon gondolkozunk, hogy hol hostoljuk a projektet, lesz-e megfelelo php verzio meg modulok meg beallitas, hanem azon, hogy hany gepen futtassuk es hogyan osszuk el a terhelest. Teljesen mas liga mondjuk egy java meg egy php, tisztelet a kivetelnek.

-
Go konkurencia kezelés gyorstalpaló

ALGOL? COBOL? Fortran? PL1? :)

Mi ez? Bástya elvtársat már meg sem akarják gyilkolni? Én már szart érek?!

Pont 30 éve írtam PL/I-ben R20-as gépre programot. 3-4 nap is volt, mire kiderült, hogy ha valamit félrelyukasztottam a lyukkártyán vagy lehagytam egy pontosvesszőt... Tény, hogy gondolkodásra és előre tervezésre nevelt a hirtelen ad-hoc próbálkozások helyett :)

--
http://eVIR.hu
Elektronikus Vállalatirányítási Információs Rendszer

Nekem miota megismerkedtem veluk, a Named Parameter-ek nagyon hianyoznak.

Illetve nekem igazabol a brutal sok kodolasi stilus nagyon zavaro (nemtom mas nyelvek hogy allnak ebbol a szempontbol). Aztan ki milyen hatterrel jott, ugy kezd el hakkolni, EE vagy Spring szeruen, allapotosan, vagy allapotmentesen, inheritance, vagy composition over inheritance, static method callok hasznalata/kerulese, stb. Nyilvan vannak ahol ezek konkretan le vannak fektetve, de feljebb nem a jol mukodo peldakkal volt a gond :)

Az a jó a programozási nyelvekben, hogy 3–4 havonta fel lehet vetni egy ilyen témát a fórumban, és mindig lesz olyan hülye (például most én is) aki elolvassa.

Már van egy listám, amelyen szereplő témákkal kapcsolatos bejegyzéseket nem olvasom el. Most a milyen/melyik programozási nyelv is felkerül rá.

< pattogatottkukoricza >

szvsz: amiből lehet futtatható programot csinálni, az programozási nyelv. Amihez keretrendszer vagy értelmező kell, az meg script.

Szerintem hülyeség ez a "kedvenc programozási nyelv", mert hogy mit miben írok, azt a feladat fogja meghatározni. Webszerkesztéshez nyilván nem fogok pascalt/c-t használni, nem mintha nem lehetne azzal is weboldalt generálni, de pl. idegen szerverre lefordítani nem lehet.
Másrészt meg nyilván megvan minden ilyesfajta eszköznek a maga erőssége valamilyen területen.

< / pattogatottkukoricza >

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

A c#-ban lehet önállóan futó binárist csinálni. (legalábbis
2003 tájékán még lehetett) Ha csak a "System"-et használtam, akkor lefuttott a kész bináris bármely Windows(NT,XP,98) gépen, anélkül hogy rá kellett vona rakni a Visual Studió bármely darabját. Tehát a c# az programnyelv.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

"keretrendszer"

Szegény libc(++) menten elszégyelli magát...

"Webszerkesztéshez nyilván nem fogok pascalt/c-t használni, nem mintha nem lehetne azzal is weboldalt generálni, de pl. idegen szerverre lefordítani nem lehet."

Erről azért az API-k és az egymással kommunikáló programok korában lehet néhányan másképp nyilatkoznának. Vagy a mindenféle natívra jittelt Java és ASP.NET-es weboldalak, rendszerek.

"Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük."

Jó, tény, hogy nem tetted magasra a lécet.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

"Szegény" ([uc|g])libc -nek miért kéne magát "elszégyellni", azért, mert egy keretrendszer? Végtére is a Linuxos rendszereken erre a keretrendszerre épül szinte minden, ami nem kernel. Még jó is hogy ebből nem csináltak többet, mert akkor lenne igazán kaotikus a Linux világa.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

Igazából próbálom eldönteni, hogy akkor most a C és a C++ programozási nyelvnek számít-e (hiszen lehet belőle futtatható programot csinálni, bár ez így még önmagában mindig elég tág fogalom), vagy scriptnylevnek (hiszen kell hozzá egy libc is általában, ami a standard dolgokat tartalmazza.)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

A c programban nem szükséges használni a (g)libc függvényeit, írhatsz programot azok nélkül is. A kernel/kernelmodulok sem használják a (g)libc-et, és (g)cc-vel lefordíthatók. Az már más kérdés, hogy maga a gcc használja a glibc-et (fájlírás, fájlolvasás, szöveges és szám-műveletek, üzenet kiírás, stb miatt), de a program amit fordítassz, annak ez nem kötelező. Irhatsz vele akár boot programot is (itt már azért gépi kódban/assemblyben kell ugyan függvényeket deklarálnod, de a függvényekkel c szintaxissal dolgozol), vagy ha valaki nagyon megharagudna a (g)libc-re, ilyen elven írhat más keretrendszert (bár ez az elkövetkezendő évtizedekben biztos nem fog bekövetkezni).

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

... egy konzolos "hello world" is akkora? Mondjuk, ablakos "hello world-nek is sok. Olyan lehet, mint a Lazarus, vagy anno a Turbo Pascal. Ha egy unitból csak 1 függvény/eljárás kell, akkor is belekerült az egész unit a futtatható fájlba. Binárisnak bináris, programnyelvnek programnyelv... Az ilyen prognyelveket akkor éri meg a legjobban használni, ha egy programon belül kihasználod a használt unitok összes lehetőségét.
Gondolom, ha nem statikusan linkeltetsz, akkor a lefordított program csak azon a Linux disztriben fog futni, amelyen fordítva lett.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

"Olyan lehet, mint a" ne talalgassunk :). A Go egy managelt nyelv igy a program futtatasahoz szuksegvan egy kornyezetre, amit a fordito belerak az egysoros HW-be is.
"akkor éri meg a legjobban használni" szamtalan felhasznalasi terulete van a Go-nak, inkabb azt vehetnenk sorra mire nem alkalmas. Pl oprendszert nem ajanlott benne irni.
"azon a Linux disztriben fog futni, amelyen fordítva lett" van benne cross compiler, de a temanal maradva azon a Linuxon fog futni, amelyik architekturara lett forditva es ahol megvan minden fuggoseg. De mi pont a static linkelest szeretjuk meg a cross compilert

-
Go konkurencia kezelés gyorstalpaló

Azért ugye megvan, hogy a C-t eredetileg rendszerfejlesztésre találták ki, míg a C#-ot (Javat, stb.) meg alkalmazásfejlesztésre?

"annak ez nem kötelező"

Persze, csak kb. semmi értelmeset nem tudsz vele kezdeni, hacsak nem implementálsz le mindent újra. Akkor meg ott tartunk, hogy megintcsak lesz 10-20-30-50 megányi kódod, amit valahonnan fel kell tudnod mutatni. (És akkor már egyszerűbb egy keretrendszer.)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Egyértelműen csak az assembler jöhet szóba!
Hiszen abban meg lehet írni az összes többit. :D

Mindent lehet, de nem jellemző.
Először is a platform legyen ugyanaz. Tehát PIC assemblert sosem írnak PIC-re, hanem más platformra és C++-ban. Bár láttam assembler fordítót java-ban vagy shell-ban megírva. Mit mondjak, szörnyű volt. ;)
Mint érdekesség, a TurboPascal-t kifejezetten assemblerben optimalizálták CP/M és PC rendszereken is.

Ez a bizonyosság valószínűleg abból ered, hogy soha nem programoztál assemblerben. ;)
Ha az assembler olyan linker féle, akkor hogyan írnád körül a következőket:
- macro assembler
- linker
- locator
- macrolib
- lib
- preprocessor
Ezek mind az assemblerhez tartozó fogalmak.
Ha ez nem győzne meg, akkor a C sem fordított, hanem assemblált nyelv némi trükközéssel. Hiszen csak alkalmaz néhány algoritmust és szabályt, ami miatt a programozónak nem kell annyit okoskodni. Kis okoskodás után ez a szabály az összes nyelvre kiterjeszthető. ;)

Miért, miért, miért? :D Miért jön felfele a VB.NET? Akkora szószátyár nyelvet a hátán még nem hordott a Föld :D

Milyet? Amilyet a feladat meghíván.

15+ évig (úristen, lehet, hogy 20 is megvan??) dolgoztam főleg C++ -ban (mneg C-ben)
Pár éve C#-ban tolom.

Tapasztalat:
C-t ne, hacsak fegyvert (vagy vastag csekket) nem tartanak a fejedhez. Laza típusellenőrzés, osztályok hiánya, iszonyat sok gépeléssel tudsz elérni valamit.

C++ már jobb, ha teljesítményre kihegyezett dolog kell, akkor ezt. De a beépített Garbage Collection hiánya miatt úgyis kell írnod sajátot :)

C# idáig messze a legproduktívabb, általában legkevesebb körítéssel legtöbbet el lehet benne érni. Szabványos könyvtárai iszonyat jók. Teljesítménye megfelelő a legtöbb feladatra, memóriaigénye elmegy. Multiplatform! Win-re írt program változtatás nélkül ment Linux alatt ARM-on...

> Milyen programozási nyelvet válasszon az ember 2017-ben?

Attól függ, mire. C-ben sem lehetetlen weboldalt programozni (CGI), de attól még überszopás.