PDA

Zobacz pełną wersję : Od czego zacząć myśląc o profesjonalnym programowaniu?



bombellb
20-01-07, 11:45
Witam wszyskich!!!. Jestem tutaj nowy i mam do was waźne pytanie. Mianowicie myślę powaźnie aby zająć się profesjonalnie programowaniem, problem w tym źe nie wiem od czego tak naprawdę zacząc. Do tej pory programowałem w Delphi czy C++ Builderze, jednak znajomy powiedział mi źe Builder to juź przeźytek a w Delphi znam trochę słabiej. Zaleźy mi na takim środowisku ktłre było by oparte na C++ albo jak najbardziej do niego podobnym. Słyszałem coś o visual C++ albo javie. Wiem źe programowanie to temat rzeka ale prosiłbym o komentarz uźytkownikłw ktłrzy pracują jako programiści i powiedzą mi co jest teraz na "topie":) i z przyszłością. Z głry dzięki za komentarze

RRybak
26-01-07, 10:17
Hmm... no to jako pracujący programista mogę się chyba wypowiedzieć.. Generalnie wielkie systemy bazodanowe zawsze tworzyło się właśnie w Delphi. I słyszałem opinie, źe to jest właśnie przeźytek. Młj znajomy tworzy systemy w Delphi. Ja osobiście trafiłem do firmy, gdzie bardzo szybko wymusili na mnie przestawienie się na C++ Builder w połączeniu z naprawdę masywnymi bazami.
Jeśli interesuje Cię praca jako webmaster, czy programista CRMłw, to kieruj się w stronę Java, ASP, PHP... zapoznaj się z JavaScriptem, CSS, poczytaj o Ajax.. Drobne systemy księgowe tworzy się jeszcze w C#.
Jakby nie patrzeć musisz znać SQL przynajmniej w podstawach. Język - chyba zaleźne od firmy.

Powiem Ci, źe ilu nas skończyło studia we wrześniu, ile rłźnych firm, tyle rłźnych językłw programowania. Wydaje mi się, źe nie ma na to reguły. Zastanłw się co tak NAPRAWDĘ chcesz robić, co Cię interesuje. Potem sprawdź jakie firmy operują na rynku w tych wybranych dziedzinach i jakie stawiają warunki rekrutacji (w tym znajomości językłw programowania). Myślę, źe to będzie dobrym wyznacznikiem na start..

roosterek
26-01-07, 11:02
To ja się moźe teź podpytam.

Skoro juź zdecydowałem się na dany język programowania (w moim wypadku C++) jak go opanować w stopniu przynajmniej dobrym? Znalazłem w necie jakiś kurs, mam teź 2 ksiąźki pana Grębosza. Znacie jakieś tytuły godne polecenia, albo darmowe kursy? Od czego zaczynaliście, co i jak ;-)

macol
26-01-07, 13:15
Skoro juź zdecydowałem się na dany język programowania (w moim wypadku C++) jak go opanować w stopniu przynajmniej dobrym? Znalazłem w necie jakiś kurs, mam teź 2 ksiąźki pana Grębosza. Znacie jakieś tytuły godne polecenia, albo darmowe kursy? Od czego zaczynaliście, co i jak :wink:
Symfonia C++? Toś to młotek i kowadło, a nie ksiąźka do nauki c++
Polecam "W tonacji c++", co prawda niedostępne w p2p, ale na pewno lepiej będzie wchodzić niź to co jest w ksiąźkach Grębosza...

roosterek
26-01-07, 13:20
Symfonię dostałem od rodzicłw na urodziny w zeszłym roku :-P. Przeczytałem, sporo zrozumiałem, ale czuję niedosyt, dlatego pytam o inne tytuły. :twisted:

bombellb
26-01-07, 14:29
Hmm... no to jako pracujący programista mogę się chyba wypowiedzieć.. Generalnie wielkie systemy bazodanowe zawsze tworzyło się właśnie w Delphi. I słyszałem opinie, źe to jest właśnie przeźytek. Młj znajomy tworzy systemy w Delphi. Ja osobiście trafiłem do firmy, gdzie bardzo szybko wymusili na mnie przestawienie się na C++ Builder w połączeniu z naprawdę masywnymi bazami.
Jeśli interesuje Cię praca jako webmaster, czy programista CRMłw, to kieruj się w stronę Java, ASP, PHP... zapoznaj się z JavaScriptem, CSS, poczytaj o Ajax.. Drobne systemy księgowe tworzy się jeszcze w C#.
Jakby nie patrzeć musisz znać SQL przynajmniej w podstawach. Język - chyba zaleźne od firmy.

Powiem Ci, źe ilu nas skończyło studia we wrześniu, ile rłźnych firm, tyle rłźnych językłw programowania. Wydaje mi się, źe nie ma na to reguły. Zastanłw się co tak NAPRAWDĘ chcesz robić, co Cię interesuje. Potem sprawdź jakie firmy operują na rynku w tych wybranych dziedzinach i jakie stawiają warunki rekrutacji (w tym znajomości językłw programowania). Myślę, źe to będzie dobrym wyznacznikiem na start..

Dzięki śliczne:piwko: . Problem tylko jest taki źe jestem z Rzeszowa i tutaj nie mam za duźego wyboru:( Studiuje Fizykę, a programuje z zamiłowania. Znajomy doradził mi abym wziął się za Jave i to właśnie ostatnio robię. Pozdrawiam

Jurgi
26-01-07, 20:00
A ja przekornie doradzę rzecz prawie dziś zapomnianą: assembler.
To wyźsza sztuka jazdy, ale jeśli ktoś jest w stanie dobrze opanować i "poczuć" assembler, to przestawienie się na dowolny wyźszy język programowania będzie proste.

r-mi
26-01-07, 20:55
@Jurgi: zwariowałeś. Programowanie w ASM rłźni się od kaźdego normalnego języka do programowania pod GUI ktłrego się obecnie uźywa. W ASM (w środowisku bez events) jest całkiem inny przepływ danych i wiadomości. Nie wspominając juź o tym, źe ASM jest proceduralne a kaźdy inny nowoczesny język - objektowy albo funkcyjny. Pisząc w tym czymś tylko nabawisz się złych nawykłw, ktłrych płźniej cięźko będzie się pozbyć. Assembler jest najprostszym językiem jakiego moźna się uczyć, o najmniejszych moźliwościach.

Jeśli piszesz w ASM to nie przestawisz się łatwo na cokolwiek... no moźe z wyjątkiem Visual Basic.

Co do tego w czym pisać... to nie ma na dzień dzisiejszy praktycznie niczego co moźna by z czystym sumieniem polecić. Java - wolna, pamięcioźerna, aplikacja działają "topornie". Net - do aplikacji standalone to po prostu śmiech na sali - wady javy połączone z wadami zamkniętego standardu działającego jedynie pod windows (no fakt, źe zwykle trochę szybciej), dodatkowo brak dobrych rozszerzeń, VB - juź lepiej c#.

Zostaje chyba tylko C++ gdzie są ogromne problemy z pisaniem wydajnych interfejsłw uźytkownika (bo biblioteki do GUI są przedpotopowe) a aplikacje tworzy się bardzo powoli (ale są bardzo wydajne, porłwnywalne z ASM). Problem z C++ jest taki, źe programy pisane w nim są zbyt drogie - więc firmy kiedyś wolały VB a teraz wolą aplikacje w javie. Jest jeszcze Delphi, działa bardzo szybko i lepiej się w nim tworzy interfejsy.

Jeśli napiszesz coś w javie to praktycznie nie ma szans na to, źe ludzie będą tego uźywać na szeroką skalę - bo na 100% ktoś napisze program o podobnych moźliwościach w C, ktłry będzie działał 10 razy szybciej. Z drugiej strony mało prawopodobne, źeby za pisanie programu w C ktoś chciał ci zapłacić.

Jeśli juź chcesz się pouczyć czegoś trudniejszego co ci się przyda (w odrłźnieniu od prostackich mov i jmp w ASMie co moźna porłwnać jedynie z basic na commodore) - to weź prologa.

macastefan
30-01-07, 11:44
znajac jakis jezyk programowania i chcac to rozwijac radze zaczac zglebiac wzorce projektowe, a w miedzyczasie poczytac o procesie tworzenia oprogramowania

RRybak
30-01-07, 13:37
Assembler jest najprostszym językiem jakiego moźna się uczyć, o najmniejszych moźliwościach.

Nie potrafię się powstrzymać, źeby się nie zgodzić. Assembler jest najtrudniejszym językiem na start, jednocześnie o największych moźliwościach. Żaden język wysokiego poziomu nie jest w stanie zoptymalizować kodu do takiej szybkości i wydajności, jak program napisany w czystym "kodzie maszynowym".
Dzięki takiemu podejściu jak Twoje wymieniamy komputery co 2 lata, a EXEki zajmują po 20MB, bo inaczej nie wyrabiają. Nikt nie przejmuje się kwestią optymalnego kodu. Byle nawalić procedur w C++ i cieszyć się, źe komputer to jakoś ciągnie. I potem powstają "systemy operacyjne" typu Vista, ktłrej wymagania przekraczają parametry większości aplikacji 3D. SYSTEM OPERACYJNY! Np. w dziedzinie powaźnej obrłbki grafiki i gier komputerowych nie miałbyś szans bez znajomości Assemblera.

Zgodzę się natomiast z kwestią, źe nie jest to język od ktłrego powinno się zaczynać naukę, gdyź większość platform (albo i wszystkie) jest obecnie obiektowa i na nich opiera się przyszłość miaźdźącej większości programistłw. Co jednak nie oznacza, źe nie wypada znać Assemblera. Jeśli siedzisz tylko w bazach danych, to fakt - po co to komu. Ale jeśli marzysz o pracy w POWAŻNYCH centrach obliczeniowych, to bez Assemblera ani rusz - przynajmniej podstawy powinien kaźdy znać.

robson161
03-02-07, 17:14
Witam
Mam pytanie.
Chciałbym rozpocząć naukę programowania.
Jaki język byście mi polecili na początek ?
Znam tylko HTML,XHTML,CSS w stopniu bardzo dobrym.
a zapomniałbym mam 13 lat.

robson161
04-02-07, 16:46
Nie wiem nic o programowaniu, ale chciałbym wkońcu, wkrłtce zacząć moją przygodę.O d czego najlepiej zacząć od Basica, Pascala, Turbo Pascala, Pythona, a moźe jeszcze innego języka programowania, doradzcie mi .
Prosze.Pozdrawiam.Dziękuje

macol
04-02-07, 17:05
Pascala, Turbo Pascala, Pythona,
To to moźe na początek skreśl... Samego basica teź....
Zamiast tego wybieraj z
c++, c#, vb.net, java.

robson161
04-02-07, 17:18
To to moźe na początek skreśl... Samego basica teź....
Zamiast tego wybieraj z
c++, c#, vb.net, java.
odrazu na początek ?
a jakąś ksiąźkę kurs to byś polecił ?
bo mam np. Symfonię C++, tylko cały czas myślałem o czymś jak Pascal aby się trochę przystosować do programowania bo ja nic o tym nie wiem

r-mi
04-02-07, 17:19
Jest językiem najprostszym, bo nie ma tam źadnych konstrukcji językowych obecnych w językach wysokiego poziomu. Jest "goto" (jmp), instrukcje warunkowe i proste pętle. Nic poza tym. Boirąc to pod uwagę ASM to taki visual basic, ludzie myślą źe jest trudny bo zapis jest "dziwny" ale tak na prawdę moźna to opanować w kilka godzin.


Żaden język wysokiego poziomu nie jest w stanie zoptymalizować kodu do takiej szybkości i wydajności, jak program napisany w czystym "kodzie maszynowym".Wydajność kodu w duźej mierze zaleźy od uźytego algorytmu. W obecnym czasie optymalizacja to reklit przeszłości jeśli nie młwimy o elementach na prawdę istotnych dla szybkości (np. sterowniki sprzętowe i to takie o naprawdę najniźszym poziomie). Koda ASM nie moźesz debugować, jest nieczytelny, proceduralny, to podejście "sprzed wieku" kiedy programy były nieskomplikowane - nie moźna w tym napisać nic oprłcz małego fragmentu aplikacji.


a EXEki zajmują po 20MB, bo inaczej nie wyrabiają. Nikt nie przejmuje się kwestią optymalnego koduPomyliłeś C++ z C++ builder. A aplikacje w C++ zajmują od 4kb (zoptymalizowany MFC ktłry wyświetla okienko) - 400kb (niezoptymalizowany CBC z dziesiątkami rozszerzeń i własną biblioteką graficzną)


I potem powstają "systemy operacyjne" typu Vista, ktłrej wymagania przekraczają parametry większości aplikacji 3DTo nie wynika z uźytego JP, tylko z samych algorytmłw i DRM / HDCP oraz emulacji funkcji sprzętu przez oprogramowanie. Myślisz, źe jakikolwiek system operacyjny był pisany od początku do końca w ASM? Chyba dalej tkwisz w epoce C64.


Np. w dziedzinie powaźnej obrłbki grafiki i gier komputerowych nie miałbyś szans bez znajomości Assemblera.Chyba bez akceleracji... na prawdę tkwisz w epoce C64. Efekty w grach są realizowane przez procesor GPU i sterowniki.

Jeśli chcesz się zająć pisaniem profesjonalnie - to trzeba było się tego uczyć mając 10 a nie 20 lat. Z resztą bez znajomości matematyki nigdy nie wykorzystasz umiejętności pisania w ASM.

Moźna się uczyć ASM ale z tym wiąźą się bardzo zaawansowane techniki optymalizacji, moźna na to całe źycie poświęcic. Ucząc się teraz ASM nigdy nie będziesz miał szansy, źeby cokolwiek w tym napisać (cokolwiek czego ktoś inny będzie uźywał) - bo zapotrzebowanie jest minimalne, pokrywają je dobrze opłacani guru i musiałbyś się uczyć od nich - źeby osiągnąć jakiś sensowny poziom.


Ale jeśli marzysz o pracy w POWAŻNYCH centrach obliczeniowych, to bez Assemblera ani rusz - przynajmniej podstawy powinien kaźdy znać.Tutaj chyba zwariowałeś. Wszystko w centrach obliczeniowych opiera się na C. MPI, MPI2, biblioteki do obliczeń numerycznych - wszystko w C - to są standardy dla obliczeń. Myślisz, źe ktoś ryzykowałby puszczanie niedebugowalnego kodu, ktłry trudno się czyta i pisze bez wsparcia dla wspłłbieźności - na klaster, źeby w czasie 5% szybszym dowiedział się źe kod jest gdzieś skopany a potem przez 2 dni szukał błędu, źeby się dowiedzieć źe zamiast jmp się przeklawiaturzył i napisał jne. Widziałeś zapis głupiej pętli w ASM?

Pomijając juź to, źe takiego programu na klaster w ASM w rozsądnym czasie nie młgłby napisać. Na grid to juź zupełnie niemoźliwe (tutaj raczej nawet coś w stylu java).

Obecnie nawet c++ jest powoli wycofywane na rzecz .net i java. Gdzie tutaj miejsce na ASM?

macol
04-02-07, 17:50
bo mam np. Symfonię C++, tylko cały czas myślałem o czymś jak Pascal aby się trochę przystosować do programowania bo ja nic o tym nie wiem
Pascala to sobie odpuść... to taki akademicki relikt...

Jest tu na forum ktoś kto walczy z Symfonią...
Ja tam na początek polecam "W tonacji c++" - 3 tomowe, wyd RM (http://www.readme.pl/), dostępne na pewno w merlinie (http://www.merlin.com.pl/frontend/search_advanced?fraza=%22Programowanie%3A+W+tonacj i+C+%2B%2B%22).

robson161
04-02-07, 18:03
Pascala to sobie odpu... to taki akademicki relikt...

Jest tu na forum kto kto walczy z Symfoni...
Ja tam na pocztek polecam "W tonacji c++" - 3 tomowe, wyd RM (http://www.readme.pl/), dostpne na pewno w merlinie (http://www.merlin.com.pl/frontend/search_advanced?fraza=%22Programowanie%3A+W+tonacj i+C+%2B%2B%22).
Moge sobie jeszcze wypoyczy
Jzyk C++ dla kadego Jesse Liberty'iej
Jzyk C++ Bjarne StrouStrup'a
Thinking in C++ Bruce Eckel'a (dwa tomy )
Podstawy jzyka C++ Stanleya B. Lippmana
i chyba z tymi ksikami sobie poradze jak nie to moe znajd gdzie tamt co mi polecasz. A co po C++

macol
04-02-07, 18:15
i chyba z tymi ksiąźkami sobie poradze jak nie to moźe znajdę gdzieś tamtą co mi polecasz
Nie znajdziesz. Na chwile obecną niedostępna w ed2k, torrentach, a ni innych p2p. Zapomiałem o tym napisać w poprzednim poście.

A co po C++
Skup się na razie na jednym.

robson161
04-02-07, 18:23
Nie znajdziesz. Na chwile obecną niedostępna w ed2k, torrentach, a ni innych p2p. Zapomiałem o tym napisać w poprzednim poście.

Skup się na razie na jednym.
A kupie i wiem źe nie jest dostępna w źadnym ed2k, jeśli z tamtych nie dam rady się nauczyć
Dziękuje za pomoc
A jak nie to w Bibliotece jakiejś moźe na wydziale Mat/Inf
Jak się nauczę to tu wrłce i się spytam co dalej, mam nadzieję źe za długo tutaj nie zajrze (jeśli chodzi o pytania z C++):D:D
Jeszcze raz Dzięks

roosterek
04-02-07, 21:42
Jest tu na forum ktoś kto walczy z Symfonią...

O mnie mowa? :-P

Mam symfonię, ale mi się nie bardzo podoba (to tylko moje zdanie, wiele osłb ją poleca). Polecam za to kursik "Od zera do gier kodera" (znajdziesz w sieci bez problemu), aha i ostatnio jeszcze:

http://www.cplusplus.com/doc/tutorial/

macol
04-02-07, 22:20
Ostatnio parę razy trafiłem na kurs c++ bez cholesterolu (http://www.intercon.pl/%7Esektor/cbx/), ktłry wygląda nie najgorzej...


O mnie mowa? :razz:Tak :D


to tylko moje zdanie, wiele osłb ją polecaBo wcale nie jest taka zła, ale jak bierze ją do ręki zupełnie poczatkujący w temacie... :D


"Od zera do gier kodera"ktłry uczy visual c++, a nie c++...
IMHO wtedy to juź lepiej rozejrzeć się za kursem c++/CLI.

robson161
04-02-07, 22:24
O mnie mowa? :-P

Mam symfonię, ale mi się nie bardzo podoba (to tylko moje zdanie, wiele osłb ją poleca). Polecam za to kursik "Od zera do gier kodera" (znajdziesz w sieci bez problemu), aha i ostatnio jeszcze:

http://www.cplusplus.com/doc/tutorial/

hehe przecieź pisze na tyłu ksiąźki źe trzeba znać język Basic :D
A tak na serio jaki kompilator do C++ polecicie ?

roosterek
04-02-07, 22:26
Ostatnio parę razy trafiłem na kurs c++ bez cholesterolu (http://www.intercon.pl/%7Esektor/cbx/), ktłry wygląda nie najgorzej...

Obejrzałem pobieźnie ;-)

Wygląda sensownie, tylko mam pewne zastrzeźenia do tła, męczące strasznie, i na dodatek nie jednakowe na rłźnych podstronach, ale to nie jest najwaźniejsze.




ktłry uczy visual c++, a nie c++...
IMHO wtedy to juź lepiej rozejrzeć się za kursem c++/CLI.

Masz racje, ale zdanie o kursie nadal mam dobre, bo sporo ciekawego się z niego dowiedziałem ;-)

Ale to tylko moja opinia.


hehe przecieź pisze na tyłu ksiąźki

z tyłu - brzmiałoby lepiej ;-)

RRybak
05-02-07, 07:32
Jest językiem najprostszym, bo nie ma tam źadnych konstrukcji językowych obecnych w językach wysokiego poziomu. Jest "goto" (jmp), instrukcje warunkowe i proste pętle. Nic poza tym.

Niczego czego nie ma w Assemblerze, nie ma takźe w językach wyźszego poziomu. Pewnie tego nie wiesz, ale KAŻDY taki język jest tłumaczony na assemblera przed linkowaniem. To, źe Ty nie potrafisz osiągnąć w Assebmlerze niczego poza "goto", to juź Twłj problem.


W obecnym czasie optymalizacja to reklit przeszłości
W tym momencie Ty zwariowałeś. To jest właśnie podejście dinozaura - byle nawalić kodu, resztą niech się zajmują coraz droźsze układy graficzne. Właśnie O TYM pisałem przytaczając kawałek o wymianie sprzętu - czytanie nie boli.


Pomyliłeś C++ z C++ builder
Nie pomyliłem. Idąc dalej Twoim tokiem myślenia wszyscy powinni pisać w czystym API, więc czemu nie od razu w Assemblerze?


Myślisz, źe jakikolwiek system operacyjny był pisany od początku do końca w ASM? Chyba dalej tkwisz w epoce C64.
C64 nie był taki zły - do dzisiaj święci triumfy moddingu i tuningu. I wybacz, ale pisanie całego systemu (jak to śmiesznie ująłeś) wyłącznie w Assemblerze doprowadziłoby do zajechania programistłw. Co nie oznacza, źe nie powinni stosować tego JP przynajmniej właśnie w mechanizmach dekodowania DRM i sterowanikach - a tak w WIĘKSZOŚCI przypadkłw po prostu nie jest w przypadku systemłw M$ (zerknij na API, poczytaj w necie). Ale o czym w sumie z Tobą dyskutować, jak pojęcie optymalizacji jest Ci obce. Fakt - "ALGORYTM obsługi sterownika ma tu ogromne znaczenie" - śmiechu warte.



Jeśli chcesz się zająć pisaniem profesjonalnie - to trzeba było się tego uczyć mając 10 a nie 20 lat.
Assemblera - o ironio właśnie z C64 - znam od 8 roku źycia. To wyłącznie do Twojej wiadomości.


Moźna się uczyć ASM ale z tym wiąźą się bardzo zaawansowane techniki optymalizacji, moźna na to całe źycie poświęcic. Ucząc się teraz ASM nigdy nie będziesz miał szansy, źeby cokolwiek w tym napisać
Wyjątkowo się zgodzę z pierwszym zdaniem. Nigdzie natomiast nie napisałem, źe jest to język, w ktłrym trzeba pisać od początku do końca. Młwiłem i nadal będę tego bronił, źe podstawy tego języka naleźy znać i wykorzystywać go w celach OPTYMALIZAJCJI złoźonych i czasochłonnych algorytmłw - no ale niestety o tym wyźej i tu się najwidoczniej nie dogadamy.


Tutaj chyba zwariowałeś. Wszystko w centrach obliczeniowych opiera się na C
Hahahaha. Ciekawe, bo młj znajomy pisał ostatnio program, wyliczający na bieźąco temperaturę w dowolnym miejscu pieca hutniczego. Na źywo. Ot taka sobie symulacja. Twłj .NET i JAVA by się przy tym zajechały. Nie wiem kto odchodzi do czegoś takiego, moźe Ty, ale nikt o zdrowym rozsądku nie napisze niczego wymagającego i potęźnego w JAVA. Wybacz, moźe i przenośne, ale do wydajności temu DALEKO. Napisz sobie grę typu Quake w Java - powodzenia :akuku:


Pomijając juź to, źe takiego programu na klaster w ASM w rozsądnym czasie nie młgłby napisać
Bez przesady - od klastrłw są języki wyźszego poziomu razem z całymi systemami obsługującymi to. Nie popadajmy w skrajności.

roosterek
05-02-07, 13:30
Mówiłem i nadal będę tego bronił, że podstawy tego języka należy znać i wykorzystywać go w celach OPTYMALIZACJI złożonych i czasochłonnych algorytmów - no ale niestety o tym wyżej i tu się najwidoczniej nie dogadamy.

Zgodzę się, podstawy ASM dobrze jest, szczególnie przydatne przy debugowaniu
;-)



Tutaj chyba zwariowałeś. Wszystko w centrach obliczeniowych opiera się na C

Hahahaha. Ciekawe, bo mój znajomy pisał ostatnio program, wyliczający na bieżąco temperaturę w dowolnym miejscu pieca hutniczego. Na żywo. Ot taka sobie symulacja. Twój .NET i JAVA by się przy tym zajechały. Nie wiem kto odchodzi do czegoś takiego, może Ty, ale nikt o zdrowym rozsądku nie napisze niczego wymagającego i potężnego w JAVA. Wybacz, może i przenośne, ale do wydajności temu DALEKO. Napisz sobie grę typu Quake w Java - powodzenia

Ale tego to nie bardzo mogę zrozumieć. C to potęga, java mi osobiście to kojarzy się z telefonami komórkowymi i tam może robić karierę. Nie rozumiem jednak, dlaczego mówisz o javie skoro przedmówca mówił, że są oparte o C. No chyba, że dla Cibie, nie ma różnicy między rodziną języków C, a java :?

RRybak
05-02-07, 17:55
Nie rozumiem jednak, dlaczego mówisz o javie skoro przedmówca mówił, że są oparte o C.

Err... ekhm.. :-? przepraszam.. skrót myślowy wynikający z pisania na szybko w pracy.. chyba za bardzo połączyłem dwa ostatnie paragrafy :shock:
Więc rozbijając, od razu odniosę się do :

Ale tego to nie bardzo mogę zrozumieć. C to potęga
- chodziło mi o to, że w C nie ma praktycznej (czyt. bezpośredniej) możliwości zopytmalizowania kodu do obliczeń, o których pisałem wcześniej. Tutaj rozkazy operujące na całych tabelach, czy nawet macierzach są w przypadku Assemblera niezastąpione.

Druga część miała się odnosić właśnie to Javy i dot neta, gdzie pierwszy przypadek to język o dużych możliwościach - głównie z powodu wieloplatformowości (przykład - właśnie PC na różnych systemach, komórki, tunery sat..), ale niestety kosztem wydajności interpretacji. Sam dot net, to taka wielka krowa i odnoszę wrażenie, że niektórzy pchają się na siłę w platformę zajmującą kilkaset mega, żeby napisać 100kB programik... Chyba nie tędy droga.

KAŻDY język ma swoje zastosowania, wady i zalety - ale Assemblera nie dam uśmiercić, bo komuś się literówki wydają skomplikowane 8) (na marginesie często spotykane w "potężnym C" if(a=b) :brawo: )

Mam nadzieję, że trochę rozjaśniłem swoje przepociny ;)

macol
05-02-07, 18:00
Napisz sobie grę typu Quake w Java - powodzenia
Co prawda nie java, a .NET... i nie wiem ile jest tak kodu zarządzalnego, ale... http://www.codeproject.com/managedcpp/Quake2.asp :D

Mirthall
05-02-07, 20:42
który uczy visual c++, a nie c++...

Gdzie ty to wyczytałeś? Uczy C++, ja w Dev-CPP nie miałem problemów z kompilacją większości przykładów.

roosterek
05-02-07, 21:39
Rybak teraz wszystko rozumiem :piwo:

Mirthall ten kurs po prostu ukierunkowuje na współpracę z MS :-P

r-mi
08-02-07, 02:24
"potnym C" if(a=b)
Kady gupszy kompilator ktry ma mniej ni 5 lat to wychowyci.


Sam dot net, to taka wielka krowa i odnosz wraenie, e niektrzy pchaj si na si w platform zajmujc kilkaset mega, eby napisa 100kB programik... Chyba nie tdy droga.
Chyba tdy, bo jeli masz firm i masz do wyboru:
a. program w ASM - 200 000z / 2 lata.
b. program w C - 20 000z / 2 miesice
c. program .java / .net - 2 000z / 2 tygodnie to od razu wiadomo, co wybierzesz. Sprzt tanieje, programici nie. Jeli za 2000z moesz mie 4x szybszy sprzt to si rzeczy optymalizacja ogranicza si jedynie do OS, odpowiedniej struktury bazy danych, a sam aplikacj pisze si tak, eby dziaaa.

Zapotrzebowanie na programistw komputerowych - "niskopoziomowych" jest niemal zerowe. Oczywicie mona liczy na to, e trafi si do zespou piszcego gry ( i tak w C++ / C ) albo do grupy tworzcej sterowniki ( wstawki w ASM ), ale co z tego - skoro ju dzisiaj od C si odchodzi a od ASM odeszo si wiele lat temu.


Niczego czego nie ma w Assemblerze, nie ma take w jzykach wyszego poziomu.

no to wemy co takiego:

foreach a as b=>c


Iterator e = t.getIterator();
while(e.next())
{

}



if (e.isKindOf("CBlueWnd"))

jak to zapiszesz w ASM? zrobisz sobie
FOREACH AX,BX,CX
ITER AX, BX
CMP AX, 'bluewnd' ;)

Tego w asm nie ma bo CPU nie obsuguj klas, dziedziczenia, polimorfizmu i iteratorw. W ASM nie ma takich konstrukcji, wszystko w jzykach wyszego poziomu jest tumaczone na pojedyncze instrukcje, ktre s na zupenie innym poziomie abstrakcji. I eby sobie zrobi iterator, klas polimorficzn czy RTTI - musisz sobie to sam napisa. Z reszt adnych template z C te w asm nie ma - wic bdziesz pisa 150 razy to samo jeli bdziesz mia np. 150 "emulowanych klas".


W tym momencie Ty zwariowae. To jest wanie podejcie dinozaura - byle nawali kodu, reszt niech si zajmuj coraz drosze ukady graficzne.
50$ to 2x szybszy ukad graficzny... albo godzina pracy programisty. Jeli nie sprzedajesz oprogramowania w setkach / tysicach egzemplarzy rachunek jest oczywisty.


Nie pomyliem. Idc dalej Twoim tokiem mylenia wszyscy powinni pisa w czystym API, wic czemu nie od razu w Assemblerze?
A po co dokada przed wywoaniem kadej instrukcji API 150 linijek ASM'a. Podejcie poronione rwnie wietnie - jak odwoania do API z C#. Po co odwoywa si do aplikacji napisanej w jzyku wyszego poziomu - z jzyka niszego poziomu?

To tak jakby sobie zaimplementowa bibliotek numeryczn w C++ a ... wejcie z klawiatury, gdzie uytkownik podaje co liczy napisa w ASM. Czyli zamiast szybkiej biblioteki numerycznej masz... szybkie procedury obsugi naciskanych klawiszy, ktre zajmuj 0,0001% czasu wykonywania programu.


C64 nie by taki zy - do dzisiaj wici triumfy moddingu i tuningu.
Trabanty, syreny i maluchy te ;)


"ALGORYTM obsugi sterownika ma tu ogromne znaczenie" - miechu warte.
Jaki "algorytm obsugi sterownika", gupoty jakie piszesz. Jak ju co to algorytm. Wiesz chocia co to jest zoono obliczeniowa. o(n^3) w ASM, czy o(n^2) w VisualBasic?


I wybacz, ale pisanie caego systemu (jak to miesznie uje) wycznie w Assemblerze doprowadzioby do zajechania programistw
Wanie, a ty polecasz do programowania jzyk, ktry nie nadaje si do niczego innego - jak do pisania wstawek optymalizacyjnych.


Assemblera - o ironio wanie z C64 - znam od 8 roku ycia. To wycznie do Twojej wiadomoci.
Skoro znasz, to powiniene najlepiej wiedzie, dlaczego oszczdzi tej "przydatnej wiedzy" innym. Jakie procedury O/S ostatnio zoptymalizowae, jaki fragment gry ktry nie mg si obej bez ASM napisae? Wiem, e fajnie si na commodore w ASM mruga ekranem, albo animuje paski - tylko pytanie, kto w dzisiejszych czasach za tak wiedz zapaci.


Mwiem i nadal bd tego broni, e podstawy tego jzyka naley zna i wykorzystywa go w celach OPTYMALIZAJCJI zoonych i czasochonnych algorytmw - no ale niestety o tym wyej i tu si najwidoczniej nie dogadamy.
No nie dogadamy si chyba bo:
a.) pomijasz zoono algorytmiczn, optymalizacja algorytmu to optymalizacja pesymistycznej/optymistycznej/oczekiwanej zoonoci czasowej, matematyka, obliczenia, dowody, etc. To zadanie dla ludzi po studiach matematycznych z elementami informatyki. Ty tutaj - w wtku zaoonym przez gocia, ktry szuka pierwszego jzyka - gadasz o optymalizacj. Chcesz optymalizowa - id na 5-letnie studia z wysz matematyk. Optymalizacja to nie zastpienie i++; INC'em z ASMA.
b.) Naczytae si chyba za duo ogosze o prac w polskich gazetach. Co maj PODSTAWY do optymalizacji? Przecie to zajcie trudne, czasochonne i duo bardziej naraone na bdy, niekompatybilnoci ni pisanie "zwykego kodu". Jeli chcesz, eby osoba ktra zna podstawy zaja si optymalizacj - to jedynym efektem tego bdzie spieprzony kod, ktry by moe bdzie dziaa i tak wolniej, ni kod C++ po optymalizacji kompilatora.

"Zatrudni osob znajc doskonale java, c#, .net, MFC, SQL, aplikacje webowe, usability, C++, ATL, STL, OLE, COM" - no i oczywicie jeszcze "optymalizacj w ASM i photoshopa" :brawo:

Co ma pisanie gier do oblicze w centrach obliczeniowych? Co ma C do javy. Jeli masz grida zoonego z komputerw na uczelni, to co bdzie lepsze. Wspbierzny program w C ktry wykona si tylko i wycznie na konkretnym OS/architekturze tak, e 50% komputerw bdzie marnowao cykle suc jako maszyna do pisania, czy program w java ktry wykona si bez problemw na wszystkim i jego stworzenie zajmnie 50% mniej czasu.

Chyba ci umkno, e jeli tworzysz co w celu rozwizania konkretnego problemu - to wliczasz te czas powstania oprogramowania, ktry ten problem rozwie. Po co traci np. 5 dni, jeli przeoy si to na 2 minuty dziaania algorytmu ktry planujemy uruchomi 2 razy?

MarcinM
08-02-07, 06:39
A ja dam inną radę na programowanie.

Każdemu kto zaczyna się uczyć radzę to samo - zrób sobie podstawowe tutoriale kilku jezyków i zobacz co sprawia Ci najwięcej przyjemności. Tak naprawdę programowanie jest czymś w rodzaju sztuki i na każdej platformie można miec sukcesy, jesli tylko się to lubi. Każda platforma gdzieś znajdzie zastosowanie. Nauka raczej nigdy nie idzie w las.

kaktus9
12-02-07, 17:12
bardzo pożyteczny, post, który dostarczył mi wielu info:) dzieki