Používané programovacie jazyky a frameworky

velmi realne sa pouziva, vacsina projektov co poznam je v jave, na beznom projekte sa kombinuju mnohe veci ale vacsina je java, mensina dot.net

1 Like

Osobne som este nevidel custom enterprise riesenie v niecom inom ako v C# (vyrazna vacsina) alebo Jave (vyrazne menej).

Backend:
C# (.Net Framework)
Java

Frontend:
C# (.Net Framework aj .Net Core)
Java

Mno, ja robim v trochu specifickych korporatoch (telco) a to je nieco podobne ako bankovy sektor. Velmi neradi sa ucia nove technologie. U “vyrobcu” zalezalo, na co si sa pozeral. Ked si pozeral na CORE signaling elementy, tak FE bol javacky a BE C alebo C++. Potom tam boli rozne media encoding elementy ktore ako FE mali uplne absurdny shell a BE bol z velkej casti pisany v C alebo C++ s urcitou mierou ASM. A potom tam boli rozne supplementary services. A to bol mix perlu, javy, php a bolo jedno ci je to BE alebo FE. Co sa tyka DB, tak mysql, oracle, sybase, sqlite, pg a samozrejme, vsetko per masina. nieco take ako db cluster nehrozilo. Pre API cisto SOAP vacsinou nad java web servisom (a je jedno ci zvysok FE bezi v jave alebo nie…). Takze ano, Java sa pouziva celkom dost, hlavne na FE.
Ale jedno viem iste, za tu dobu co toto robim so si vypestoval zabijacke instinkty voci TomoviMacke. Ja ten soft tak neznasam, ze som schopny javistov diskomunikovat len preto, ze pisu v jave :smiley:

Co sa tyka “operatora”: povedz jazyk/tech a my ju urcite niekde mame. Kludne, technologia prosperujuca v mid 90’s urcite niekde este zije a handluje dolezite veci :)) Kedze interny vyvoj akosi nefunguje, vacsinu veci dodavaju dodavatelia a s cim pridu, to je. Vela veci je spravenych pekne, vela veci je spravenych systemom “toto je proof of concept” ktory sa zrazu stal produkciou. A zaroven niekde mame aj node, angular, go alebo inu aktualnu vychytavku.

Proste, neda sa povedat ze co sa najcastejsie pouziva. Zalezi od spolocnosti.

Anyway, ja by som to mozno neprehanal s jazykmi, ale zaradil aj trochu systemackych vedomosti. Ludia znovu objavili DevOps a neda sa pozerat na developera ktory nevie co ma robit ked mu povies aby restartol webservis. A ked mu zacnes vysvetlovat SELinux tak kladie vypoved na stol. Ak ich aktualne ucis php + css, tak ich nauc co je CI/CD, ako tie tooly funguju (principy). Ako korektne verzovat. Ako korektne rozbehnut LAMP stack. Z osobnej skusenosti, studaci nemaju ani tucha ze egistuje aj niekto iny ako koder a zabezpecuje to, ze ten server bezi a spracovany kod sa im posiela do prehliadaca :slight_smile:

Nejaký JS framework je zatiaľ jeden z potencionálnych kandidátov na doplnenie, padol tam AngularJS, aj keď mám obavy, či to budú schopní dávať všetci. Ale tieto JS veci sú celkom dobrým kandidátom k rozšíreniu výučby, keďže sa to dá využiť na klientskej aj serverovej strane.

AngularJS je stará vec, už sa používa Angular.

Skúste si dať hľadať “java programátor”, “c# programátor” a pod. na rôznych pracovných portáloch, uvidíte, aký je v súčasnosti dopyt. Takýmito trendami by som sa ale moc neriadil, to sa môže relatívne rýchlo zmeniť.

1 Like

Áno, to je dôvod, prečo sondujem trochu tu medzi nami, lebo napr. často sa hľadá to, čo málokto robí, zvlášť na pracovných portáloch. Pamätám si jednu dobu, keď na Googli kraľovalo “SEO” a to preto, že “seoisti” hľadali sami seba a v rôznych keyword checkroch to bolo všade. :slight_smile:

Robim v korporatoch uz dlhe roky a co tam vidim oblubene je bud Java + Oracle alebo Microsoft produkty ako .Net + MSSQL na enterprise produkty, ktore podporia kde tu perlom, ci hocicim co zrovna dany clovek ovladal ked k tomu pisal obsluzne scripty
Ked si odmyslis tieto dva molochy tak Python je velmi oblubeny

Ja si myslim ze slovensko je na tom viac menej rovnako ako svet, asi bude trosku rozdiel v statnych a sukromnych projektoch, resp. velkych (Java / C#) a mensich (ostatne) projektoch.

A kedze nevychovavame studentov len pre nas public tak…
Mne sa osobne paci tento rebricek:
https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017

Pripadne nejaka statistika z GitHubu

Bolo by asi ale dobre to vyvazit a vzdelavat od DB (SQL) cez backend az po frontend, potom sa uz kazdy nasmeruje sam co mu viac sedi

1 Like

Dám skúsenosť z troch menších firem ktoré robia produkty pre celý svet:

  • C# a .NET / WPF pre desktop aplikácie, kde je veľa okienok
  • C++ pre časti a aplikácie ktoré potrebujú rýchlosť
  • keď som robil v Siemense a SLSP pred 7-10 rokmi tak sa veľký software robil tiež v C++
  • Perl, HTML5 + JS na drobnosti

Ja by som teraz programovanie učil (aj trochu učím) cez C#. Je tam C++, objekty, a výhodou je jednoduchšia práca so súbormi, stringami, okienkami (cez XAML). Presedlanie na iný okienkový systém je vždy komplikované, nech začneme kdekoľvek.

Tiez pripajam rebricek z GitHubu: https://madnight.github.io/githut/

Ja ucim mladsie deti (10-13) a povacsine sa oni sami chcu ucit Python. Python ma celkom citatelnu syntax a robil som s nim v korporate, v malej firme a aj v akademii – a to nie som pythonista. Plus je k nemu hrba ucebnych materialov online.

Viem, ze rady “na jazyku nezalezi” nepotrebujes, ale z mojich skusenosti je dolezitejsia napr motivacia a schopnost samostudia. Nema velku cenu vychovavat developerov pre rok 2018, dolezitejsie je aby sa vedeli preluskat novymi vecami dalsich 30 rokov po skole.

4 Likes

Vo firme používame hlavne jazyky Java a JavaScript. Čo sa týka frameworkov - do tých by som asi študentov netlačil, lebo predstavujú náročnú komplikáciu vo vývoji a rýchlo zastarávajú.

Osobne by som vo výuke dal dôraz hlavne na zvládnutie objektovo-orientovanej paradigmy, lebo vo veľkých projektoch je to väčšinou jediná cesta k úspechu. Myslím si, že prechod z procedurálneho a štruktúrovaného programovania na OOP je ďaleko náročnejší než prechod z hociktorého objektového jazyka na iný objektový jazyk.

2 Likes

Na taketo otazky najlepsie odpoveda: https://insights.stackoverflow.com/survey/2017
Dobre je to porovnat aj s predchadzajucimi rokmi.

Uplne najpouzivanejsi a najziadanejsi jazyk je samozrejme JavaScript, kedze na tvorbu webovych stranok a aplikacii sa neda pouzit prakticky nic ine. Z didaktickeho hladiska by som to neodporucal, no z karierneho hladiska je to najjednoduchsia a dobre platena volba, navyse pre studentov moze byt motivujuce ze za kratky cas moze dosiahnut realne vysledky.

Na otazku, co sa pouziva vo firmach: vo vacsich firmach je to okrem JavaScriptu hlavne Java a C#.
Okrem toho by sa zisiel spomenut aj Python, ktory sa tesi popularite hlavne v akademickom a vedeckom prostredi, no nielen tam.

Hovorim za Accenture - najvacsiu firmu (podla poctu zametancov) na svete, ktora dodava sofwarove riesenia na mieru a tam je poradie taketo: Javascript, Java, C# s tym ze JavaScript je skill vyzadovany prakticky univerzalne. Cize napr Java+JavaScript, C#+JavaScript, etc. Python skoro vobec nie.

Statistiky su fajn, ale riadit nimi svoju karieru na najblizsich 5-10 rokov je podobne dobry napad ako ist volit toho kto vyhrava vo volebnych prieskumoch.

2 Likes

riadit nimi svoju karieru na najblizsich 5-10 rokov je podobne dobry napad ako ist volit toho kto vyhrava vo volebnych prieskumoch.

Ale Jano, nemyslel som si, ze ty budes takto flamovat :smiley: Ale ok, pridam sa. Nie, nieje to to iste. Toto bolo trochu nepodarene prirovnanie. Zmysel volieb je tu statistiku vytvorit. Volbou programovacieho jazyka mu nedavas hlas. To nema nic spolocne.

Netvrdim, ze najpouzivanejsi jazyk je najlepsia volba. Nech si kazdy cita statistiku tak ako chce. No tie prieskumy ukazuju aj trendy, alebo napriklad “Most loved” a “Most hated” jazyky. Na zaklade coho ineho sa chces rozhodnut? Vlastne preferencie asi sotva moze nejaky teenager mat, ked este nema skusenosti.

Okrem toho, dobra odpoved na otazku moze byt zalozena na faktoch a v tomto pripade fakty=statistiky. Ty si napriklad dal nejaky zoznam GOV.UK. Preco by to malo byt relevantne? To si vybral ihlu v kope sena. Ja napriklad viem, ze Nemecko ma blizsie k Microsoft cloudu a ze Microsoft sa snazi ovela viac ako Amazon aby bol compliant s co najviac predpismi a regulaciami europskej unie.

Tym len chcem povedat, ze otazka “Co sa pouziva” je dobra a da sa odpovedat jedine dobrou statistikou. Vsetko ostatne su len velmi subjektivne dristy, ktore treba brat s rezervou, vratane tohto mojho komentara :slight_smile:

Ked uz chceme flamovat, tak dodam, ze statistiky z GitHubu su uplne ale ze uplne zle. GitHub totiz ani nahodou nereprezentuje trh prace. Kolko firiem ma repozitare na githube? Uz len keby sme zobrali privatne repozitare na GitHube, tak tie statistiky budu uplne ine.

Povodna otazka ale neznela na trh prace, ale na to ake jazyky sa pouzivaju v (nielen) statnych projektoch. A reakcia hned tretia je presne tato tvoja vytka, takze to tu nebudeme opat opakovat. :smiley: Rozumies co hovoris, v principe suhlasim. Inak ja presne o tomto robim uz niekolko rokov prezentacie na FIIT, ze akakolvek statistika ma obrovsky bias a vlastne nicomu sa neda velmi verit :smiley: vid tu.

Zasadne otazky ktore treba dat studentom je nie aky jazyk chcu pouzivat, ale co chcu robit a kam sa hybe trh. Budu sa robit viac mobilne aplikacie? Webove aplikacie? Virtualna, obohatena realita? AI? Chcu dobre zarabat a mat stabilny job (COBOL! vazne) alebo nieco zaujimavejsie (Haskell, Clojure) pripadne data science (Python, R, Julia).

Proste cela ta otazka, ake jazyky ucit mi pride otocena naopak. Ja na skole ucim Ruby nie preto, aby som ich mohol potom zamestnat, ale preto, aby si skusili nieco mimo mainstreamu (Java, C# atd) a pochopili, ze jazyk je nieco co im moze aj nestat v ceste. Aj ked Ruby uz dnes je vlastne mimo hype a takmer mainstream volba (mimo SK).

2 Likes

Nuz, suhlasim, ze pre programovanie na strednej skole by mali byt ine kriteria, ako to co sa aktualne pouziva, lebo

  1. to sa aj tak zmeni

  2. naucit sa to v pripade potreby nieje az taky problem.

Zalezi od toho, co je cielom ucitela.

  • Ak je to naucit kvalitne zaklady programovania, tak je na to vhodne pouzit nejaky specializovany jazyk na vyucbu. Nieco ako bol Pascal, ale moderne (neviem co to je, nemam prehlad).

  • Ak je to motivovat ucit sa programovat, tak to moze byt nieco ako Unity3D - daju sa tam velmi rychlo dosiahnut efektne vysledky a studenti z toho maju predsa len vacsiu radost ako z “hello world, whats your name”.

  • Pripadne HTML/JS, lebo je to pre stredoskolaka suverenne najpraktickejsie a vedia to hned aplikovat.

aby si skusili nieco mimo mainstreamu a pochopili, ze jazyk je nieco co im moze aj nestat v ceste

vidis, to su podla mna velmi subjektivne dovody. Napr neviem, preco by nieco mimo mainstreamu malo byt vyhodou. Ale ok, nesudim.

Zasadne otazky ktore treba dat studentom… co chcu robit

To ti student strednej skoly sotva povie. Ja som napriklad chcel byt diplomat :smiley:

A kam sa hybe trh. Budu sa robit viac mobilne aplikacie? Webove aplikacie? Virtualna, obohatena realita? AI?

Toto sa meni tak rychlo a navyse tie predpovede su take nepresne, ze to nema ani zmysel pytat sa skor ako pri vybere bakalarskej temy. Ja si napriklad myslim ze to bude screenless UI a blockchain. Anyway, ovela dolezitejsie je na strednej skole bud motivovat, alebo (resp. zaroven) ucit univerzalne skilly.

Pretoze mainstreamove jazyky uz davno vedia v momente ked sa k nim dostanem ja. :slight_smile:

Toto ti nepovie ani druhak na vyske. Ale ta otazka nemusi mat odpoved, skor je to nieco co im chcem vrazit do hlavy, ze by sa mali pytat seba.

Ucit principy programovania na strednej - neviem, ja mam studentov co su uz druhaci na vyske a ucim ich vzdy principy, pretoze tam je jedno ci to robis v makovom ci orechovom jazyku, vzdy to bude rovnake.

Pekná téma, tak prispejem mojimi…

Za mňa je to:
Java EE (=teda aj web a sem by som zahrnul aj HTML/CSS, hoci pre niekoho to môže byť extra téma)
SQL a PL/SQL
Visual Basic for Applications
Shell scripting - a) v Linuxe, b) v PowerShelli (win)
XSLT

–> každé má svoj špecificky unikátny účel použitia.

Frameworky nekomentujem, dosť často sa to mení a moja skúsenosť je skôr taká, že developeri, ktorí príliš skoro začnú “frameworkovať”, potom netušia, ako veci naozaj fungujú, bez svojho toolu sú nepoužiteľní a najmä (to považujem za najväčší problém) používajú tzv. “pudovú metódu” (nejak to zbúcham, moc nerozmýšľam o súvislostiach a buď tu pude nebo nepude).

Na záver si neodpustím ešte jeden komentár… Ak uvažuješ nad učením mladej generácie, je to veľmi zodpovedný výber. Kým totiž prídu do praxe, mnoho vecí sa zmení…
Každopádne, vo veci samotného programovacieho jazyka, myslime na použiteľnosť a atraktívnosť. Samotný programovací jazyk stredoškoláka asi len tak nezaujme - nedokáže posúdiť komplexitu, benefity a ani nevie, kde bude o 5 rokov… Ale ak mu sľúbiš, že bude vedieť robiť appku do smartphonu alebo naprogramovať niečo na webe, či rozbehnúť eShop, máš lepšie šance ako učiteľ. Teória nebude zďaleka tak dobre prijatá ako nejaká Tvoja vlastná appka do smartphonu, ku ktorej im dáš zdrojové kódy a naučíš ich doplniť svoje vlastné fičúry.

Jano tu niečo o štatistikách naznačil a ja len doplním - všetci programujeme už 10 - 20 rokov, aj dlhšie a v princípe sa nič nemení… raz som sa naučil napr. Cčko (v skutočnosti som začínal s basicom a strojovým kódom 8080 na didaktiku, ale to nie je pre príklad podstatné) a jeho princípy sa dajú používať naprieč jazykmi stále. Keď som robil v korporáte pred 15 rokmi v Prahe, bežal C# a Java a vidím ho bežať stále. Menia sa frameworky, raz tak, raz onak, ale principiálne sa toho moc nemení, len to, či zavolám funkciu s názvom View alebo Show. Dokonca aj frameworky sú evolučné nie revolučné a u väčšiny projektov sa ani nemenia častejšie než raz za 5 - 10 rokov. Tu naozaj netreba vymýšľať koleso a hlavne už vôbec sa netrápiť obľúbeným mýtom, že “neučiť pre rok 2018”. Páni, nikto z nás nebol učený pre rok, ktorý ešte neexistoval a pre frameworky, o ktorých sme ani nesnívali. :slight_smile: Učí sa, čo je “na stole” s tým, že časť ľudí (menšia) dokáže z toho abstrahovať hneď (teda ľahko sa prispôsobia inej technológii) a časť na prispôsobenie potrebuje si to “omakať”, odpraxovať (učia sa reverzne - rozobratím “budíka”) - to je napr. dôvod, prečo mnohí ani na VŠ nevedia programovať, lebo len z “princípov” to nie sú schopní pojať. Mne napr. programovali na krúžku weby 6taci na ZŠ a niektorí to dali lepšie, ako niektorí VŠ, čo som videl ich práce. A keďže už sa IT neučia len “nerdi” ako my, je dobre im dať základy, z ktorých môžu praxou evolučne rásť :slight_smile: Preto tá otázka na aktuálne bežiace veci :slight_smile:

Vďaka všetkým za podnetnú diskusiu, nakoniec sme sa vyhli flamu. Aj z iných diskusií mi vychádza cca toto - keďže sa jedná o hodinu Internetové technológie, tak HTML/CSS/JS + Bootstrap/jQuery + PHP alebo C# ako vhodný základ, ktorý sa zmestí do dotácie hodín do dvoch rokov výučby. V PHP aj C# by to chcelo aspoň základ nejakého frameworku. Ako výsledok jeden frontend a jeden backend, čo im umožní spoznať princípy takých aplikácií, z čoho môžu potom evolučne sa vyvíjať.