Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

W jakim języku programujesz?

TechEkspert 27 Jun 2018 21:55 4752 47
Optex
  • W jakim języku programujesz?
    Istnieje bardzo wiele języków programowania, część z nich nigdy nie uzyskała popularności, niektóre z czasem straciły na znaczeniu, jeszcze trudniej przewidzieć co pojawi się i zdobędzie popularność w przyszłości.

    W jakich językach potraficie programować, które języki sprawdzają się do określonych zadań, a które zwyczajnie lubicie?


    Czasami na elektroda.pl pojawiają się tematy z dyskusją co lepsze np. C++ czy Bascom, czasem dyskusja dotyka poza językiem programowania określonej platformy np. Arduino, lub komputerów SBC np. RPi. Nie jestem przekonany czy takie dyskusje ogólne mają sens, inaczej w przypadku określonych warunków zastosowania języka lub środowiska.
    Z czasem wszystko się zmienia, osoby pamiętające asembler na platformę '51 prawdopodobnie mogły przewidzieć ekspansję C w świecie mikrokontrolerów, ale już np. pochodna Python na mikrokontrolery lub LUA na ESP8266/32 świadczy o dynamicznych zmianach na przestrzeni lat.

    Niektóre języki takie jak Shakespeare, BeFunge, Whitespace wyglądają jak żart lub ciekawostka, ew. eksperyment i pokazanie, że można zrobić coś inaczej niż popularne rozwiązania.

    Część rozwiązań i języków programowania związanych z polską informatyką np. system operacyjny CROOK lub komputer Odra pozostały już tylko ciekawostką i historią, ale co powiecie np. o fortranie? Okazuje się, że NASA w zeszłym roku zorganizowała konkurs optymalizacyjny dot. Fortran.

    Czy i jakie znaczenie ma dla Was wybór języka programowania?

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    TechEkspert
    Editor
    Offline 
    W moich materiałach znajdziecie testy i prezentacje sprzętu elektronicznego, modułów, sprzętu pomiarowego, eksperymenty. Interesuje mnie elektronika cyfrowa, cyfrowe przetwarzanie sygnałów, transmisje cyfrowe przewodowe i bezprzewodowe, kryptografia, IT a szczególnie LAN/WAN i systemy przechowywania i przetwarzania danych.
    Has specialization in: elektronika, mikrokontrolery, rozwiązania it
    TechEkspert wrote 3728 posts with rating 3148, helped 12 times. Been with us since 2014 year.
  • Optex
  • #2
    Dariusz Goliński
    Level 22  
    Witam
    To może ja zacznę.
    Jak potrzebuję coś szybko na atmegę zrobić to piszę w Bascom jak coś szybko działającego lub wykorzystujące jakieś specyficzne biblioteki to robię to w C gdy tworzę coś na PLC to zazwyczaj w LD lub FBD ale jak muszę coś w S7-300 albo 400 to genialny STL , wstawki w Proface w języku skryptowym, czasami muszę skrobnąć coś w Pythonie ale to raczej z musu, jak coś na PC to Visual Basic , czasami C# z książką w ręku. Jakieś proste formularze to PHP i MySql, w UR z reguły korzystam z API ale skrypty też się pisze.
    Zasadniczo ma być szybko i sprawnie. Nie liczę nop-ów i nie podniecam się doskonałością kodu. Ma działać sprawnie , optymalnie i być czytelne dla innych.
  • Optex
  • #3
    _lazor_
    Moderator of Designing
    Dla mnie bardzo ważne jest dobranie języka do zastosowania oraz czy poziom wiedzy programistów pozwala na pisanie w danym języku.
    Wszystko również zależy od założeń projektowych danego oprogramowania, czy dany język spełni nasze oczekiwania i czy pasuje do użytej architektury procesora.

    Zakładanie że w danym języku coś można wykonać i będzie to lepsze jest bardzo niebezpieczne, gdyż to czy dany język bardziej pasuje do danego problemu zależy od bardzo wielu czynników.
    Często w obrębie jednego projektu używa się wielu języków, gdyż każdy ma swoje wady i zalety. Często producent danego układu wymusza zastosowany język, gdyż nie dostarczy kompilatora do oczekiwanego języka czy standardu.

    Moim zdaniem jeśli skupimy się tylko i wyłącznie na zaletach i możliwościach danego języka to nie jesteśmy w stanie dobrać poprawnie języka do zastosowania, jednak nadal są bardzo ważne ograniczenia danego języka i czy one będą nam przeszkadzać w pisaniu.

    Takie pytanie to jest temat rzeka, gdyż jest za bardzo ogólne. Odpowiedzi na to pytanie jest tyle ilu jest programistów.
  • #4
    Dariusz Goliński
    Level 22  
    Dokładnie tak jak kolega pisze.
    To jak odwieczny dylemat Windows czy Linux chociaż i tak wszyscy w dzisiejszych czasach posługują się androidem.
  • #5
    marycyś
    Level 12  
    Jak potrzebuję coś szybko na uC zrobić to piszę w C. Jednak jak tworzę rozbudowany program to piszę w C.
  • #6
    Radzio M.

    Level 34  
    marycyś wrote:
    Jak potrzebuję coś szybko na uC zrobić to piszę w C. Jednak jak tworzę rozbudowany program to piszę w C.

    Jednym zdaniem piszesz tylko w C ;)

    PLC : LD, FBD, ST
    uC : C
    makra do mach3 : Visual Basic
    PC : C, C#
    jakieś skrypty do HMI : JAVA

    PLC zawodowo, reszta hobbystycznie ;)
  • #9
    katakrowa
    Level 22  
    TechEkspert wrote:
    Niektóre języki takie jak Shakespeare, BeFunge, Whitespace wyglądają jak żart lub ciekawostka, ew. eksperyment i pokazanie, że można zrobić coś inaczej niż popularne rozwiązania.


    Mamy jeszcze : https://pl.wikipedia.org/wiki/Brainfuck a także BrainFuck wielowątkowy : https://pl.wikipedia.org/wiki/Brainfork :-)

    Co do pytania z tematu .. to może chronologicznie:
    - od około 1985r. pierwsze kroki zxSpectrum BASIC ;
    - od około 1990r. kod maszynowy Z80 - bo nikt mi nie powiedział, że jest coś takiego jak kompilator a miałem książkę do asm z mnemonikami :-)
    - od około 1991r. assembler z80 wymieszany z zx BASIC ;
    - pierwszego PC'ta dostałem w 1 klasie liceum 1993r. więc od razu wskoczyłem w potężne narzędzie Borland Turbo BASIC z debugerem 16-bitowymi liczbami - POTĘGA !
    - około 1994r. dość płynnie wszedłem w Borland Turbo Pascal 7.0 potem 7.1 zaczęły się pisanie wstawek w assemblerze i pierwsze próby MASM'a
    - pod koniec liceum około 1997 zacząłem bawić się pierwszymi 8051 więc powrót do assemblera ;
    - na studiach to już poszło lawinowo ... Chcąc nie chcąc trzeba było poznać C++, Delphi, Visual Basic
    - około roku 2000 pierwsza praca i tam już na poważnie Delphi4 + projektowanie sterowników na 8051 wówczas używałem kompilatora Keil C kod był tak fajnie zoptymalizowany a pisanie na tyle wygodne, że do ASM już nie chciałem wracać;
    - potem własna firma to już komercyjne pisanie aplikacji w Delphi / C Builder hobbystycznie c++ ( grafika 3d "własne renderowanie, gluty" i inne "opengle" ) ;
    - projekty firmowe zaczęły się rozrastać o www więc znowu liznąłem C na linuxie ale pojawiło się PHP, które bardziej spełniało moje oczekiwania do realizacji biznesowych projektów ;
    - i tak do dziś główny projekt firmowy w Delphi od kilku lat migrujący na PHP + JS . Pojawiły się też pojedyncze projekty w C# i Java jednak nigdy się nie rozwinęły.
    - C++ i elektronika już są praktycznie od ponad 15 lat jedynie hobby.

    Podsumowując co lubię i co uważam.
    Po pierwsze język trzeba wybrać odpowiedni do tego co chcemy zrobić. Sterowniki będę pisał w C++ lub asm ze wskazaniem na C++.
    Systemy księgowe do fakturowania, księgowania w Delphi lub JAVA najlepiej w jakimś RAD. Aplikacje na serwery WWW w PHP + JS.
    Z zainteresowaniem patrzę w stronę GO bo to też ciekawa rzecz i mam sentyment do języków kompilowanych. Denerwuje mnie jak widzę jak interpretery typu PHP czy JS krztuszą się i duszą na prostych pętlach :-)

    Każdy język / środowisko ma swoje wady i zalety i choć Delphi mam w małym palcu to nie wyobrażam sobie robić w nim stron WWW (to jak zawracać kijem Wisłę). Przez wiele lat zbudowałem warsztat nie tylko "sprzętowy" ale i zaplecze bibliotek i narzędzi programistycznych, które pozwalają na szybkie realizowanie projektów. Raczej nie widzę możliwości zmiany języków, których używam ( poza pojedynczymi projektami ). Czy języki, które wybrałem są jakieś lepsze? Absolutnie nie po prostu tak się potoczyło życie. Czasem żałuję, że 15 lat temu nie wybrałem Javy albo środowisk od Microsoft ( choć jak zaczynałem to Visual C nie dorastało do pięt Borlandowi więc szczególnej alternatywy nie było ).

    Co w przyszłości ? Ja zmieniam stery na PHP+JS + np. Python. Jeśli chodzi o elektronikę niskopoziomową to C++ ( nie mówię o RPI ). Dlaczego ? A no dlatego, że mam tu już spory bagaż doświadczenia a robiąc rzeczy komercyjnie nie należy eksperymentować na klientach. Jestem zwolennikiem Ewolucji niż rewolucji :-) Zresztą w systemie, który pisze się codziennie od 15 lat średnio przez 2,5 osoby to szybko nic nie da się zmienić. Trzeba będzie pomacać jakieś C++ bo sterowniki drukarek fiskalnych czy systemów kontroli dostępu będą tego wymagały ale to tylko mały procent całej układanki.
  • #10
    koczis_ws
    Level 27  
    Nie jestem zawodowym programistą. Jak wielu w czasach ZX , Commodore , ATARI zaczynałem od BASIC. Potem na PC BASICA no i potem Turbo BASIC, który bardzo mile wspominam.
    Podchodziłem do C ale jakoś ciągle brakowało motywacji.
    Teraz projektując w SolidWorksie piszę sobie i kolegom różne pomoce. Prostsze makra w VBA bo łatwo i szybko się je uruchamia i testuje. Większe i wymagające , oraz dodatki do SW w VisualBASIC.
    Oczywiście skoro preferuję VB to mikrokontrolery w BASCOMie. A C ... może w przyszłości :D. Na razie nie jest mi potrzebne.
  • #11
    TechEkspert
    Editor
    Widać doświadczenie w Waszych wypowiedziach, podoba mi się praktyczne podejście do tematu. Wybranie tego co pasuje do projektu oraz zespołu to dobra metoda. Być może takie dyskusje jak w tym temacie są niewyczerpalne, ale gdy uczesticzę w takiej rozmowie to jest to okazja do poznania nowych narzedzi oraz różnych rodzajów podejścia do tematu.

    Poznając kolejne języki i środowiska zawsze trafiam na jakieś ciekawe rzeczy ale bez rewolucji, jedynie przygoda z VHDL verilog była czymś mocno zaskakującym :)
  • #12
    User removed account
    User removed account  
  • #13
    _lazor_
    Moderator of Designing
    Każdy język ma swoje pit fall i niestety zawsze winny za błędy w kodzie jest człowiek. Poziom złożoności oraz przejrzystość ma ogromne znaczenie.
    Jedni powiedzą że pisanie w danym stylu jest straszne i niebezpieczne, ale znajdą się ludzie co właśnie w takim stylu nie popełnią błędów i na odwrót, wychwalany patern programowania będzie powodem błędów gdy programiści go po prostu nie poczują.

    Problemy naprawdę typowo językowe zaczynają się gdy zaczyna czegoś brakować w projekcie - brak miejsca, niewyrabianie się z obliczeniami, słaba responsywność układu. Wtedy zaczyna się bardzo głęboko wchodzić w język by zobaczyć jak poprawić sytuację. Wtedy wychodzą rzeczy takie jak używanie pewnych cech języka gryzie się ideałami czy biblioteka standardowa nie jest tak wspaniała i tak trzeba ją przepisać na własne potrzeby.

    Dobry architekt to musi przewidzieć, i zakładać że projekt będzie rozwijany często latami, więc w pewnym momencie to już przypomina wielką kule śniegową, gdzie często nie ma już osób w zespole, które pisały dany kawałek kodu, albo się zwyczajnie nie pamięta co dokładnie chodziło. Do czego zmierzam, zmierzam do tego, że oprócz języka są potrzebne inne rzeczy by projekt mógł się kręcić np Dyscyplina, testy jednostkowe, testy modułowe, testy regresyjne, porządnie wykonane review, pisanie dokumentacji od razu z kodem itp.
    Nie ważne jak by był wspaniały język, jeśli zabraknie otoczki to wszystko pójdzie w końcu w maliny.
  • #14
    User removed account
    User removed account  
  • #15
    katakrowa
    Level 22  
    TechEkspert wrote:
    Poznając kolejne języki i środowiska zawsze trafiam na jakieś ciekawe rzeczy ale bez rewolucji, jedynie przygoda z VHDL verilog była czymś mocno zaskakującym


    to jednak zupełnie inna bajka jest . Zazdroszczę, że kolega umie. Efektem pracy przecież nie jest kod maszynowy więc trudno oczekiwać dużej ilości analogii to "klasycznych" języków.

    z3planety wrote:
    jakiś przykład bo nie zauważyłem. (no chyba że tak napisane że GC chodzi w kółko)


    Każdy przykład pętli w PHP albo JS jest minimum 10 razy wolniejszy od takiej w języku skompilowanym ?
    O pętlach z obliczeniami np. jakiś wyrażeń matematycznych sinusów itp. nie wspomnę bo ta rozbieżność robi się większa.
    Do pracy na łańcuchach trzeba używać wiele funkcji, których nazwy trzeba znać a w takim c++ czy delphi nawet jak nie znam funkcji sortowania to zaimplementuję sobie go sam i będzie tak samo szybki jak ten z biblioteki. W JS taki quickSort samodzielnie napisany w kodzie będie wiele wolniejszy od tego z biblioteki. To trochę ogranicza możliwości modyfikacji/optymalizacji np algorytmów wyszukiwania w ciągu tekstu albo obliczeń.

    W JS dochodzi problem zawieszania się przeglądarki zmuszając do projektowania z użyciem callbacków i finalnie przy większy projekcie pakując się "callbackHell". W nowych wersjach JS coś z tym kombinują ale jak dla mnie to główna wada JS jeśli chcemy pracować na większych ilościach danych.
    Nie wykluczam jednak JS i używam - grafiki 3d pixel po pixelu w nim nie będę renderował więc jest OK. A jego wady wynikają z jego założeń, które w innych sytuacjach stają się przewagą.
    Jednak brak "nie blokującej przeglądarki" możliwości zrobienia pętli po tabeli zawierającej po tablicy z np. 10000000 to jednak jest problem a metody jego omijania nie da się ukryć, są karkołomne.

    JS i PHP to języki interpretowane ich powolność jest nieunikniona jednak nie znaczy to, że w pewnych zastosowaniach są niezastąpione.
    Jeśli o tym wiemy to np. nie będziemy porywać się na pisanie w JS albo PHP, który przekształca serie obrazów jakimiś egzotycznymi przekształceniami macierzowymi tylko weźmiemy do tego C++, Delphi albo Go. Jeśli nie wiemy to możemy się zdziwić dlaczego obróbka jednego obrazka FullHd trwa np. minutę zamiast sekundy.

    Kiedyś jeszcze w liceum lubiłem robić róże efekty graficzne. Brakowało mi zawsze wydajności CPU. Teraz z ciekawości taki efekt zaimplementowałem w JS. Mam komputer i7 i działa to trochę jak na 486DX2 :-)

    Przykład: http://ms.xksi.pl/_js3D/
  • #16
    lemgo
    Level 14  
    z3planety wrote:
    Nie wiem co Cie tak to dziwi - ale Fortran ma tak bogatą bibliotekę numeryczną, firmy i naukowcy mają tyle pożytecznego softu napisanego, że nikt nawet ni pomyśli o zmianie :). To samo Cobol w wielu miejscach (ok 40% banków i ubezpieczycieli na świecie używa). Wszyscy mówią że chcą odejść od niego, ale jak policzą ile to będzie kosztować - rezygnują. Zresztą dobry programista COBOL w USA czy UK, będzie zarabiać 2-3 razy średnia na podobnym stanowisku w IT

    CERN poniósł te koszty i odszedł od Fortranu na rzecz C++, bardzo zgrabnie im to wyszło. https://root.cern.ch/
    Gdzieś nawet chyba jest dostępne case study
  • #17
    fotomh-s
    Level 23  
    Na proce AVR to Bascom. Tak się 10 lat temu nauczyłem (no i te 10 lat zleciało bardzo szybko), przyzwyczajenie mnie trzyma przy tym języku (kiedyś przyjdzie czas na coś lepszego, AVR studio albo Arduino). Swoją drogą to pierwszy język programowania którego się nauczyłem.

    Jak aplikacje w na PCty to VB.net, środowisko Sharp Develop (darmowe, open source). I tak samo 10 lat strzeliło i jakoś VB.net i Sharp Develop nadal mi pasuje :-)

    Kiedyś (to były jeszcze czasy gimnazjum, czyli znowu jakieś 9 lat temu) trochę się bawiłem PHP, wtedy zbudowałem prototypowy system zdalnego sterowania przez internet (wykorzystując także aplikację napisaną w VB.net). Jednak potem jakoś nie było okazji programować w PHP. Nie było potrzeby.

    I na koniec to sporo "drobnicy" czyli OVAL (rodzaj VB na Psion Workabout MX), "oldschool Basic" że tak to nazwę na komputer Epson HX-20, różne skrypty, programowanie różnych emulatorów (głównie kalkulatorów programowalnych).

    W planach budowa prostego komputera na Z80, procek zamówiony, będzie nauka programowania w ASSembly, czyli jak sama nazwa wskazuje ból zadka ;-) System będzie RAM only, już zbudowałem monitor na bazie ATmega16 aby manipulować pamięcią RAM, potem dodam mu funkcję transferu między pamięcią RAM a EEPROMem szeregowym, taki niezależny bootloader będzie.
  • #18
    User removed account
    User removed account  
  • #19
    User removed account
    User removed account  
  • #20
    szczepan999
    Level 12  
    Jako że programy piszę na własny użytek (zarówno hobbystycznie jak i te co pracują u mnie we firmie) to nie jestem zmuszony do wpasowywania się w obecne mody, trendy itp. Używam tego co znam, co działa, co nie jest niepotrzebnie skomplikowane, czego nauczyłem się 15 lat temu:)
    Czyli:
    - mikrokontrolery - C
    - programy użytkowe pod unix: głównie Perl, czasem C
    - aplikacje www - Perl+FastCGI
    - programy pod windows: Lazarus czyli w sumie stare Delphi

    Generalnie staram się nie używać magicznych gotowców bo potem zawsze przychodzi moment że coś nie działa jak w zamyśle a ja nie wiem dlaczego bo nie do końca rozumiem co się dzieje. Można powiedzieć że wiele rzeczy robię na zasadzie wymyślania koła od nowa, ale jeśli robię to pierwszy raz to wolę cośtam zaimplementować od zera niż wyklikać w jakimś gotowcu - potem po prostu rozumiem co się dzieje jeśli coś nie działa. Oczywiście nie jest tak że nie korzystam z bibliotek - korzystam jak najbardziej, unikam jedynie 'magicznych czarnych skrzynek'.
  • #21
    -XantiO-
    Level 21  
    uC--->C/C++
    PC---->C++, C#, Fortran, FortranCL(zdarzyło sięe pisaćc pod GPU)

    Aktualnie walczę z nauką VHDL
  • #22
    KJ
    Level 31  
    W zasadzie piszę tylko na uC głównie w Bascomie i o dziwo moje programy działają zgodnie z oczekiwaniami. Jeżeli jest inaczej to zwykle wynika to z braku umiejętności i wiedzy niż z samego języka, acz zgodzić się muszę że nie jest on idealny, niemniej uważam że na AVR pozwala na więcej i wymaga większej wiedzy niż ukochane przez wielu arduino ide. Zdarzyło się też kilka razy pisać proste rzeczy w asemblerze z pozytywnym skutkiem. Na PC bawiłem się trochę Borland Delphi, napisałem nawet jedną działającą aplikację której potem całkiem długo używałem ;) Przesiadki na C próbowałem dokonać kilkukrotnie jednak chyba jestem za mało ogarnięty na pisanie w tym języku. Jest on dla mnie zbyt abstrakcyjny i symboliczny przez co nieczytelny, co nie zmienia faktu że to bardzo dobry i uniwersalny język.
  • #24
    User removed account
    User removed account  
  • #25
    katakrowa
    Level 22  
    z3planety wrote:
    funak napisał:
    Ja zaś na uC piszę w C, ale już zaczynam dostrzegać braki
    Czekam z utęsknieniem na listę braków.


    Z takim podejściem to można programować w czystym kodzie maszynowym. Też niczego nie brakuje. Teoretycznie do napisania nowej wersji DOOM'a wystarczy HEX editor :-)
    A w C do języków wyższego poziomu jednak trochę brakuje i nie da się ukryć, że wiele rzeczy można w innych językach zaprogramować o wiele wygodniej i szybciej.
    Ot choć tablice asocjacyjne czy wbudowany garbage collector. Oczywiście, że wszystko da się zaimplementować tylko "domyślnie" jednak tego nie ma.
  • #26
    c2ar3k
    Level 9  
    Zawodowo nie zajmuję się żadnym programowaniem, ale ponieważ programowanie to dla mnie hobby, to w efekcie od lat całkiem sporo programuję także w pracy na własny użytek - analiza danych z systemów bazodanowych, automatyzacja mojej własnej pracy itd. Określiłbym siebie jako średniozaawansowanego, ale nie mam ambicji zostania profesjonalistą w programowaniu.

    Głównie w pracy:
    a) VBA w Office najwięcej Access, mniej Excel, ale także sporo Word i trochę Power Point; uważam że to świetne narzędzie do aplikacji biurowych (oczywiście ma mankamenty i pewnie wyrabia złe nawyki, ale możliwości są duże)
    b) T-SQL
    c) RPG na AS/400 w latach 2001 do 2006, ale bardzo egzotyczny dlatego wspominam

    Tylko w domu:
    d) C na AVR oraz na ESP8266

    W planach na przyszłość:
    e) B4A (trochę już próbowałem, fajne!)
    f) C na ARM (Cypress)
    g) Python na RPi
    h) Delphi
  • #27
    User removed account
    User removed account  
  • #28
    katakrowa
    Level 22  
    z3planety wrote:
    katakrowa napisał:
    Ot choć tablice asocjacyjne czy wbudowany garbage collector.
    Brawo!! Ma to tyle wspólnego z C i C++ co pięść z kształtem nosa.


    I co w związku z tym ? Prosiłeś aby wskazać czego nie ma w C więc wskazałem.

    Skoro jesteśmy przy elektronice to staram się nie wybiegać poza dość popularne np. raspberryPi, na którym w PHP możesz programować bez problemu. Zresztą nie widzę powodu by w dziedzinie elektroniki dyskryminować PC'ta - bowiem niejeden szlaban czy winda z windowsa po 485 jest sterowana.

    z3planety wrote:
    Proszę o wskazanie choćby jednego języka z tymi właściwościami zaimplementowanego (w sposób użyteczny) na uC - albo nie pisać takich generalnych trele-moreli.

    To kolejne założenie, o którym wcześniej nie wspomniano.

    Jak już trzeba coś znaleźć to mamy np.: https://micropython.org/ , https://www.youtube.com/watch?v=LlZxSFKQiD8 - osobiście nie znam Pythona ale wiem, że to już język dużo wyższego poziomu i kultury niż np. C i żeby nie było, nie mam nic do C - korzystam i chwalę sobie efekty pracy z nim choć pisać w tym nie przepadam:-)
    Warto też brać pod uwagę, że dzisiaj już można za kilka doloarów kupić mikrokontroler z 2MB pamięci programu i 640kB RAM więc lada dzień wraz ze wzrostem ich popularności i ilości RAM pojawią na nie dystrybucje różnych linuxów a także nastapi wysyp kompilatorów wszelkiej maści języków. Stanie się codziennością pisanie programów w Python, Go itd gdzie GC i tablice i tablice asocjacyjne nie wymagają karkołomnych działań ze strony programisty ...
  • #29
    User removed account
    User removed account  
  • #30
    katakrowa
    Level 22  
    z3planety wrote:
    Przypomniała mi się anegdota o radzieckim profesorze amerykaniście, który co prawda w USA nigdy nie był, ale posiadał bogatą wiedzę na ten temat z radzieckiej prasy i biuletynów partyjnych.

    Cieszę się, że kolega ma jeszcze taką dobra pamięć i pamięta dowcipy sprzed moich narodzin :-)

    Tymczasem nie trzeba sięgać daleko by zobaczyć jakie przewagi nad C Python ma:

    "Filozofia Pythona:
    Python realizuje jednocześnie kilka paradygmatów. Podobnie do C++, a w przeciwieństwie do Smalltalka nie wymusza jednego stylu programowania, pozwalając na stosowanie różnych. W Pythonie możliwe jest programowanie obiektowe, programowanie strukturalne i programowanie funkcyjne. Typy sprawdzane są dynamicznie, a do zarządzania pamięcią stosuje się garbage collection.."

    Zródło: https://pl.wikipedia.org/wiki/Python


    z3planety wrote:
    Zresztą GC jest (nawet wtym wątku widać dowody) dla wielu programistów bardzo niebezpiecznym narzedziem, bo daje złudne poczucie, że nie musza dbać o pamięc i o niej myśleć. I późnilej mamy skrypty PHP "mulące" w pętlach, albo C# gdzie z czasem program zwalnia zwalnia, a w końcu się wykrzacza.


    Skoro o "początkujących" / "nieświadomych" programistach mowa przytoczę opinię z Wikipedii (którą także podzielam):
    "Język C pozwala na wykonywanie niskopoziomowych operacji, przez co wiele prostych błędów programistycznych nie jest wykrywanych przez kompilator, a przy wykonywaniu programu ujawniają się dopiero po jakimś czasie i w przypadkowych miejscach".



    z3planety wrote:
    funak napisał:
    Ja zaś na uC piszę w C, ale już zaczynam dostrzegać braki
    Czekam z utęsknieniem na listę braków.


    wracając do braków języka C względem C++ to są także wypisane na wikipedi.

    W jakim języku programujesz?

    Kolega funak ma w czym wybierać.