» »

programski jezik

programski jezik

i33a ::

Pozdravljeni
Sem dokaj nov v programiranju (znam le osnove C++)
Rad bi začel resneje programirati (ob šoli)
KATERI PROGRAMSKI JEZIK NAJ IZBEREM?
Rad bi čimprej ustvaril kakšen uporaben programček.
Zanima me kako je z zahtevnostjo, vodiči, knjigami...
Kaj lahko v posameznem programskem jeziku naredim lažje kot v drugemu, kateri je najbolj primeren za začetnike?

Lp i33a

Isotropic ::

http://diveintopython3.org/
jaz bi grafiko oz. user interface nadomestil z pyQT, ampak do tega mores se priti...

roba87 ::

Če poznaš osnove potem vrjetno ne znaš še objektno programirat v c++. Tako da jaz ti to priporočam. Za literaturo pa veš :), google je tvoj prijatelj :D

Backup22 ::

Definitivno C# (+ XAML). Vodičev (tudi video) je ogromno, knjige so super. Jezik podobno zgleda kot Java in ima dobro in jasno strukturo.
Za začetek si lahko pogeladaš par video tutorialov, da vidiš kako vse skupaj izgleda:

Z istim jezikom boš lahko razvijal od konzolne, "okenske" (forms), WPF, spletne (asp.net), Silverlight aplikacije...
V vsakem primeru (ne glede na jezik), pa se boš moral privaditi konceptov OO. Razumeti moraš kaj so razred, objekt, metoda, handler/delegat, event...

Če te kaj zanima kar vprašaj ;)
//

c00L3r ::

Rad bi čimprej ustvaril kakšen uporaben programček.
Predvidevam, da delaš v Windows okolju? Potem si lahko namestiš visual c# express. Lahko delaš grafične vmesnike z XAML, kot je predlagal Backup22, ali pa za začetek začneš preprosto z Windows Forms.

In popolnoma se strinjam še s tem kaj je napisal Backup22:
V vsakem primeru (ne glede na jezik), pa se boš moral privaditi konceptov OO. Razumeti moraš kaj so razred, objekt, metoda, handler/delegat, event...

Brez tega ne bo šlo...

l0g1t3ch ::

Lahko začneš tudi z Javo, ki je podobna kot C# ampak nisi omejen na win platformo.

i33a ::

Gledal sem po forumih in videl da večina predlaga C# za začetnike...
Kateri prevajalnik naj uporabim?
A kdo pozna kakšne uporabne vodiče, zanimivo knjigo....

snow ::

Svetujem da nadgradiš znanje v C++ in poleg tega začneš uporabljati Qt - http://qt.nokia.com/products
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

i33a ::

Kakšne so prednosti/slabosti: C++, C#, Java, Python

snow ::

C++ je najhitrejši ker se prevede v mašinsko kodo. Mogoče pa najtežji in razvoj programa traja najdlje.
V Pythonu se da pa zelo hitro naredit dokaj kompleksen program, ampak ni za obdelavo velike količine podatkov.

Bi rekel, da programski jezik izbereš glede na to kaj hočeš naredit, če pa se hočeš samo učit programiranja je v končni fazi vseeno.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

Backup22 ::

i33a uporabi Visual Studio - Express verzija je zastonj in ima vse kaj potrebuješ: klik
Izberi Visual C# za namizne aplikacije in Web Developerja za spletne aplikacije.

snow - uporabnik bi rad:
"Rad bi čimprej ustvaril kakšen uporaben programček.
C++ žal ni za to :)

i33a - C# (sploh zdaj v 4.0) se mi zdi, da je najbolj napreden - imaš lamda expressions, anonime in dinamične tipe, stuff za lažje paralelno izvajanje, taske...
Če bi se jaz danes začel učiti, bi definitivno izbral C# + XAML. Res je, da je C/C++ najhitrejši, ampak dvomim, da potrebuješ takšno optimizacijo.
//

Zgodovina sprememb…

  • spremenilo: Backup22 ()

Mavrik ::

Kakšne so prednosti/slabosti: C++, C#, Java, Python


Gremo po vrsti:

C#, Java:

Ta dva jezika dajem skupaj, ker sta si zelo podobna. Oba laufata v nekem virtualnem stroju (Java JVM, oz. .NET CLR) in imata zelo veliko standardno knjižnico, kar omogoča zelo preprosto in hitro programiranje. Java je z razlogom trenutno najbolj popularen jezik, saj zasnova jezika omogoča hitro prevajanje, hitro iskanje in odpravljanje napak in v splošnem se lahko bolj koncentriraš na pisanje same aplikacije, kot pa na zajebavanje z jezikom.

C# ima tule prednost, ker lahko vmesnik aplikacije lepo "narišeš" kar v Visual Studiu, medtem ko ima Java prednost v tem, da Java aplikacije tečejo tako na Windowsih, kot na Linuxu in OS X.

Python:
Python je jezik, ki je začel pridobivati na priljubljenosti pred relativno malo časa. Samo ima pa kar nekaj dobrih argumentov: se osredotoča na čimpreprostejše pisanje kode, preglednost. Tako kot C# in Java ima ogromno standardno knjižnico, tako da je pisanje stvari v Pythonu prav tako hitro in preprosto. Nekoliko celo preprostejše kot v zgornjih dveh jezikih in bi si zato upal trditi da je za začetnika med naštetimi še najbolj primeren. Najhitreje se boš naučil osnov programiranja in videl že kak rezultat.

Ima pa Python vseeno nekaj problemov: med naštetitimi je daleč najpočasnejši, zaradi dinamičnosti manjka dobrih IDE okolij, prav tako pa od programerja zahteva nekaj discipline, saj je nedokumentirana Python koda bližnjica v pekel. Prav tako je izdelava grafičnega GUIja težja kot v C#.

Vseeno bi si upal trditi, da je za začetnika Python še najprimernejši.

C++:

C++ je pa tipičen jezik, ki je nastal z evolucijo in proba biti dober v vsem, mi pa v ničemer ne uspe. Je kriptičen, poln posebnih primerov, standarna knjižnica je hudo omejena, neprestano zahteva od programerja da se ukvarja z brezveznimi banalnostmi kot je upravljanje s pomnilnikom, ko gre kaj narobe te pozdravi s kriptičnimi ali preveč razpisanimi sporočili o napaki...
Prav tako je zaradi načina delovanja jezika iskanje napak v kodi težko in frustrirajoče opravilo. Edina res prednost, ki jo C++ ima pred zgornjimi jeziki je to, da je nekoliko hitrejši (čeprav, C je še hitrejši in tudi Java ga zna krasno dohitevati) in da ne zahteva nameščanja dodatnih knjižnic za izvajanje programov napisanih v njem (Java programi zahtevajo nameščen Java JRE za izvajanje, C# zahtevajo .NET framework, Python program pa python interpreter).

Vsi resnejši projekti jemljejo C++ kot nujno zlo in se ga ogibajo če se ga le da - in to z dobrimi razlogi. Tebi, ki tistih 3% hitrosti v primerjavi z Javo ali C# ne boš rabil ti C++ zelo zelo odsvetujem.
The truth is rarely pure and never simple.

c00L3r ::

Mavrik zelo dobro napisano. Tvoj post bi se lahko dal v kakšno sticky temo, saj je veliko vprašanj na forumu v stilu "v čem naj programiram".

i33a kot sma ti že povedala jaz in Backup22, najlažje boš začel z C# z brezplačnim razvojnim okoljem Visual C# Express. Ta zajema urejevalnik, prevajalnik, zelo dobro orodje za grafične vmesnike in še veliko več :) Za C#/Visual Studio/Visual C# express tečaje pa se obrni na Google. Razen, če je kdo dal kateri tečaj skozi in lahko potrdi da je dober?

i33a ::

odločam se med C# in Javo...
Če prav razumem C# deluje samo na Windovsih, Java pa tudi na Linux-u, in OS X.
V C# je lažje nekaj "narisat"
Zanima me glede knjig, tutorialov...
Na youtubu sem nekaj brskal pa za C# nisem našel prav veliko vodičev
Za Javo jih je pa kar nekaj npr: link
Kako je z knjigami (po možnosti v slovenščini)?

Mavrik ::

Prva stvar: idejo o slovenščini si morš z glave zbit kar takoj na začetku programiranja, ker te bo samo omejevala. Večina dobrih člankov, knjig, literature je vse v angleščini.

Drugače bi pa moralo biti ogromno literature po spletu tako za Javo kot za C#.

Če prav razumem C# deluje samo na Windovsih, Java pa tudi na Linux-u, in OS X.


Nekaj takega. Sicer se da na Linuxu tudi pognati nekatere C# aplikacije čez Mono, toda tisto je še precej hroščato in nedokončano.
The truth is rarely pure and never simple.

techfreak :) ::

V slovenščini poznam eno knjigo o Javi: http://www.pasadena.si/knjigarna/?id=19... Ampak težko boš kaj veliko našel v slovenščini.

V C# je lažje narisati forme (okna), vendar tudi v Javi lahko (npr. NetBeans podpira). Java deluje skoraj povsod in to je njena glavna prednost.

Z istim jezikom boš lahko razvijal od konzolne, "okenske" (forms), WPF, spletne (asp.net), Silverlight aplikacije...

Tudi z Javo lahko programiraš konzolne, okenske, spletne in mobilne aplikacije.

c00L3r ::

Odgovora kaj je boljše Java ali C# ne boš dobil. To je ena izmed stvari za katere se moraš odločit. Jaz in večina drugih programerjev/razvijalcev zna programirat v več programskih jezikih. Ravno zdaj delam Javo za Android in C# za Windows Mobile :D

Če hočem naredit na hitro neko preprostejšo aplikacijo za Windows, pa bom uporabil C#. To je moja osebna izkušnja.

l0g1t3ch ::

Python je sicer luštn jezik ima pa zame nekja motečih zadev in sicer:

1. metode z imeni tele oblike __nekaj__
2. razredi nimajo privatnih polj, metod
3. ni nativno vgrajenih interfacov, dedovanje večih razredov naenkrat pa smrdi

To ni pljuvanje po jeziku, me pa močno zanima zakaj je temu tako.

DavidJ ::

Jaz pa mislim, da ima glede prijaznosti do uporabnika, C# prednost pred Javo. MS Visual Studio je trenutno pač svetlobna leta pred vsemi editorji, ki podpirajo Javo. (Je pa res, da je IntelliJ baje dober, vendar ga še nisem "dobil v roke".)

Za začetnika bi pa jaz bolj priporočal Javo. Zato, ker je bolj usmerjena k odprti kodi. Lahko se greš zadosti profesionalen razvoj in vse to z orodji, ki so prosto dostopna. Tudi C# ima nekaj odprtokodnega zaledja, vendar vse resne zadeve se počnejo v VS, ki ni poceni. Prav tako je prehod iz Jave na C# neboleč. Obratno zna biti bolj nerodno, ravno zaradi slabših IDE-jev.

Sicer pa, kot pravijo mnogi drugi, sta jezika zelo podobna in si v marsičem konkurenčna. Enkrat sem celo prepisval nek razred iz Jave v C#. Sem porabil celih 5 minut za približno 1000 vrstic kode. Nekaj search/replaceov in autocorrectiona v VS in zadeva je delovala. (:

Python je sicer luštn jezik ima pa zame nekja motečih zadev in sicer:

1. metode z imeni tele oblike __nekaj__
2. razredi nimajo privatnih polj, metod
3. ni nativno vgrajenih interfacov, dedovanje večih razredov naenkrat pa smrdi

To ni pljuvanje po jeziku, me pa močno zanima zakaj je temu tako.

Jaz bi k temu dodal še "dynamic name resolution". Torej spremenljivke in metode nimajo vnaprej določenega tipa, ampak se jim določi med izvajanjem. Raj za napake in debugging.
"Do, or do not. There is no 'try'. "
- Yoda ('The Empire Strikes Back')

Zgodovina sprememb…

  • spremenil: DavidJ ()

napsy ::

Zadnje čase tudi sam raziskujem jezike.

Za začetek je python odlična reč, čeprav ime pomanljivosti, ki so jih že drugi omenili (interpretiran, dinamični tipi, večkratno dedovanje). Vendar se pri določenih rečeh precej dobro obnese. Na primer s kombinacijo knjižnic lahko enostavno izdeluješ spletne storitve (django) ali pa pisanje enostavnih skript.

Jezik Google Go zgleda obetaven in kot kaže bi lahko postal sprejemljiva zamenjava za jezik C. Vendar se še jezik razvija (čeprav je že čisto uporaben).

Če te zanima sistemsko programiranje, potem je C pravilna izbira (izogibaj se C++). Je dokaj preprost jezik vendar zahteva določeno znanje o delovanju sistema in računalnikov.

Za programiranje umetne inteligence oz. logično programiranje si poglej Lisp ali Prolog. Vendar sta ta dva precej različna od trenutnih, ki so razširjeni v industriji (C++, C#, ...).

Za izdelavo poslovnih aplikacij maš tukaj C# pa Javo (čeprav ne priporočam). En zanimiv splošnonamenski jezik je tudi Haskell, ki zadnje čase postaja čedalje bolj popularen vendar spet malce drugačen od onih razširjenih jezikih. Ima pa zato precej dobrih lastnosti.

Če te pa bolj zanima web programiranje, potem pa si poglej kombinacijo Python + django ali pa PHP, JavaScript.
"If you die, you die. But when you live you live. There is no time to waste."

arjan_t ::

@DavidJ: kje se kaže ta "MS Visual Studio je trenutno pač svetlobna leta pred vsemi editorji"?
kaki primeri?

alexa-lol ::

java

DavidJ ::

@DavidJ: kje se kaže ta "MS Visual Studio je trenutno pač svetlobna leta pred vsemi editorji"?
kaki primeri?

Izkušnje iz prakse. Eclipse je v redu, netbeans malce manj, Oraclov jDeveloper je tudi ok, IntelliJ izgleda obetaven, a ga, kot omenjeno, ne poznam dovolj dobro. Out-of-the-box funkcionalnosti kot jih ima VS, nima noben od teh. Recimo tako dober intellisense, generator kod, UI editor, grajenje dokumentacije in podobne bonbončke ima VS najbolje pošlihtane. Ti povem iz lastnih izkušenj in izkušenj kolegov.
"Do, or do not. There is no 'try'. "
- Yoda ('The Empire Strikes Back')

smoke ::

Jaz bi pa rekel tak: Programer mora vedeti zakaj uporablja določen programski jezik. Ne moreš vedeti kaj so prednosti C# ali Jave če prej nisi uporabil C/C++! Jaz sem recimo začel na najnižjem nivoju - na x86 assemblerju. Potem sem prešaltal na C/C++ in zdaj občasno uporabim tut C#. Res je tut, da ko enkrat znaš programirat, znaš programirat v bilokterem jeziku. Vsekakor pa mislim da nebi smel začeti na pri C# ali Javi saj se po mojih izkušnjah dost več naučiš če začneš na nižjem nivoju in potem greš na višje.

BlueRunner ::

C in C++ z malenkostmi včasih zameglita veliko sliko - postopke in ideje.

Ostali bolj abstraktni jeziki pa zamegljujejo dejasnko delovanje strojne platforme, kar neizkušene programerje pripelje do neoptimalnih rešitev.

Kot dober programer moraš med drugim razumeti tudi delovanje procesorjev in upravljanje s pomnilnikom. Tukaj je C nepogrešljiv. Po drugi strani pa za večjo produktivnost preskočiš na bolj abstraktne jezike, kjer lahko koncept izraziš v enem ali dveh stavkih in ne z neposrednim programiranjem.

Tako da pri programskih jezikih ni ali-ali izbire. Je samo izbira katerega se lotiti prej oziroma katere spoznavati sočasno.

Zgodovina sprememb…

darkolord ::

vendar vse resne zadeve se počnejo v VS, ki ni poceni.
Ampak je... zastonj? :)

cekr ::

VS Express Edition je že v osnovi kar sposobno okolje. Sicer recimo proti Pro verziji manjkajo neke komponenete, vendar za manjše zadeve je popolnoma dovolj. Ko presežeš to verzijo, pa itak toliko obvladaš, da dobiš že kakšno delo, kjer ni problem Pro verzija.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]

techfreak :) ::

vendar vse resne zadeve se počnejo v VS, ki ni poceni.
Ampak je... zastonj? :)

Ampak C# je vseeno zaprt, Mono pa ponavadi približno deluje za 2 leti star framework.

cekr ::

Ja? In kaj ma veze, če je C# zaprt?

Važno je, da delaš nekaj, kar te veseli, te ne zafrkava in da je na koncu pravi učinek.
Da boš pa nekaj delal samo zato, ker naj bi bilo na "Open" osnovi, je pa zelo zgrešena miselnost.

Če moraš pa za samo programiranje prej postorit in naštudirat še mnogo nepotrebni zadev, ki bi bile lahko avtomatske, pa marsikoga že vse mine.
Zato vsaj na začetku uporabi orodje, s katerim boš imel najhitrejši in viden učinek.
Če si mazohist, boš šel v to lahko tudi kasneje, ko boš imel vsaj občutek ,kaj se sploh da narediti.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]

Zgodovina sprememb…

  • spremenilo: cekr ()

darkolord ::

Ampak C# je vseeno zaprt
To je še najmanj pomembno pri vsem...

Mono pa ponavadi približno deluje za 2 leti star framework.
Kar pa tudi ni nevem kako hud problem. Preden zadevo osvojiš (osnove so itak enake), bo zunaj že nova verzija.

noraguta ::

ja? In kaj ma veze, če je c# zaprt?
ne tko govorit z dejanom on redno popravvlja opensource kompajlerje #{in bare metal}, zato tudi ne jebe jezikov z meta kostrukti.

šalo na stran.

C# je najbrž za začetek najlažji(največ efekta z najmanj vložka), java mu pa tesno sledi, če govorimo o aplikacijah z uporabniškim vmesnikom. Razlike med jezikoma so bolj ali manj kozmetične narave. V splošnem pa ima c# kar nekaj sintaktičnih bombončkov, katere java vključuje v jezik precej bolj konzervativno. Je omenjena zadeva tudi prekletstvo c#. Kateri počasi postaja podobno skupaj nametano skrpucalo kot je to c++.
Če danes primerjam vb. Net in c# je prvi celo lepši jezik kot pa drugi.

Sam se nekako najbolje znajdem v ml svetu, pa vendar trenutno družina ne premore enega solidnega predstavnika s povsem delujočim razvojnim okoljem. F# je pr ms-ju nekje na stranskem tiru, nemerle pa počasi a gotovo umira(enostavno premalo razvijalcev), čeprav mi je ravno zaradi dobre podpore in izvedbe metaprogramiranja daleč najljubši. Ko se navadiš na pattern matching, algebrajske tipe, lazy evaluation ter druge priboljške včasih še vseeno posežeš po jeziku brez vizualnega designera.
Pust' ot pobyedy k pobyedye vyedyot!

Zgodovina sprememb…

  • polepsal: Mavrik ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

začetki programiranja

Oddelek: Programiranje
355786 (3861) Mavrik
»

Programski jezik za 13 letnika - NA NOVO? (strani: 1 2 )

Oddelek: Programiranje
9413020 (9465) blackbfm
»

Visual Basic, C#, C++, razlike... (strani: 1 2 3 )

Oddelek: Programiranje
12210043 (7714) 64202
»

Java

Oddelek: Programiranje
322762 (2320) Nerdor

Več podobnih tem