Jump to content

Język C


Grzechu

Recommended Posts

czołem

 

 

pytanie do programistów w C. Zarzuć ktoś jakimś pomysłem na program w C na zaliczenie przedmiotu ;)

 

dopiero zaczalem nauke tego, wiec to coś w miare prostego, poziomem podobnego np. do programu liczenia prostych całek z prostokątów, przeliczanie sumy liczb na system dwójkowy 16-stkowy itp...

 

z góry dzieki :)

Link to comment
Share on other sites

Proponuję wieże Hanoi. Trzy pręty z krążkami (podpowiem). Algorytm rekurencyjny. W Pascalu czy C trochę przykładów - klasyka.

Jak nie musisz wykorzystać surowego C tzn Kernighan & Ritchie i możesz podeprzeć się jakąś biblioteką graficzną to zrób fraktale.

 

Edit: Szereg Fibonacciego też jest dosyć prosty.

Link to comment
Share on other sites

np. do programu liczenia prostych całek z prostokątów

zrób porównanie różnych metod np. właśnie liczenia całek, albo rozwiązywania równań nieliniowych czy coś w tym stylu, kilka metod i po ilu iteracjach otrzymujemy jaką dokładność. Wieże Hanoi też spoko, wystarczy skopiować kod z neta :D
Link to comment
Share on other sites

Masz tu ..... ciekawy wywiad z ojcem C. - znalazłem kiedyś w necie.

 

1 Stycznia 1998 roku, Bjarne Stroustrup udzielił wywiadu dla jednego z czasopism komputerowych - "IEEE Computer". Wydawcy myśleli, że będzie to nawiązanie do minionych siedmiu lat programowania obiektowego za pomocą języka, który sam stworzył. W trakcie wywiadu, prowadzący go redaktor został dość niemile zaskoczony przez swojego rozmówcę, co było powodem późniejszej chęci zatajenia treści wywiadu przez wydawców, tłumaczonej "dbaniem o dobro przemysłu komputerowego". Jednak jak to zwykle bywa w takich przypadkach, również i tutaj wystąpił tzw. przeciek informacji. Oto kompletny odpis tego co zostało powiedziane, bez jakichkolwiek obróbek merytorycznych. Dlatego też nie wygląda to tak, jak w przypadku innych, wcześniej uzgadnianych wywiadów. Jednak myślę, że spotka się to z zainteresowaniem....

 

 

Redaktor:

Minęło już parę lat odkąd zrewolucjonizowałeś świat programowania. Co o tym myślisz, patrząc wstecz na swoje dokonania?

 

Stroustrup:

Właściwie myślałem o tym tuż przed twoim przyjściem. Pamiętasz?... Wszyscy pisali w C, a problemem było to, że byli w tym cholernie dobrzy. Również uniwersytety były dobre w nauczaniu tego języka. W bardzo szybkim tempie wypuszczali na świat wykwalifikowanych (podkreślam słowo: wykwalifikowanych) absolwentów. To właśnie spowodowało problem.

 

Redaktor:

Problem?

 

Stroustrup:

Tak, problem. Pamiętasz jak dawniej wszyscy pisali w Cobol-u?

 

Redaktor:

Oczywiście, ja też w tym pisałem...

 

Stroustrup:

Więc na początku ci ludzie byli jak półbogowie. Mieli wysokie pensje, i traktowani byli niemalże jak członkowie rodziny królewskiej.

 

Redaktor:

To były czasy..., prawda?

 

Stroustrup:

Właśnie! I co się stało? Firma IBM miała tego dosyć, więc zainwestowała miliony dolarów na wytrenowanie tylu programistów, aż było ich dosłownie na pęczki.

 

Redaktor:

Z tego właśnie powodu ja też odszedłem. Pensje spadły w przeciągu roku na tyle, że bardziej opłacało się pisanie artykułów do magazynów.

 

Stroustrup:

Dokładnie. To samo stało się z programistami piszącymi w C.

 

Redaktor:

No tak. Ale do czego zmierzasz?

 

Stroustrup:

Otóż pewnego dnia, kiedy siedziałem w swoim biurze, myślałem nad czymś co wprowadziłoby trochę równowagi do ówczesnej sytuacji. Zastanawiałem się co by było, gdyby istniał język na tyle skomplikowany i trudny do nauczenia, że nikt nie byłby w stanie zalewać rynku programistami. Miałem parę pomysłów z X10, no wiesz, X windows. To dopiero było okropne środowisko graficzne... chodziło tylko na maszynach typu Sun 3/60. Ale miało śwszystkie składniki jakich potrzebowałem: naprawdę śmiesznie skomplikowaną składnię, mętne i niejasne funkcje oraz pseudo obiektową strukturę. Nawet w dzisiejszych czasach, nikt kto chce pozostać przy zdrowych zmysłach, nie pisze w czystym kodzie X-windows.

 

Redaktor:

Chyba żartujesz...?

 

Stroustrup:

Ani trochę. Był też kolejny problem. Unix został napisany w C, a to znaczyło że każdy programista piszący w tym języku, mógł bardzo łatwo przejść na pisanie systemów operacyjnych. Pamiętasz chyba ile wtedy programista takich głównych systemów zarabiał ?

 

Redaktor:

Jasne że tak, sam też się tym zajmowałem....

 

Stroustrup:

Zatem ten nowy język musiał oddzielić się od Unix-a, ukrywając wszystkie wywołania systemowe. To umożliwiłoby zarobienie paru groszy również tym, którzy znali tylko DOS-a.

 

Redaktor:

Nie wierzę, że to powiedziałeś...

 

Stroustrup:

No cóż, minęło już trochę czasu i moim zdaniem większość ludzi odkryła, że całe C++ to tylko strata czasu, choć muszę powiedzieć, że zajęło im to o wiele dłużej niż przypuszczałem.

 

Redaktor:

Zatem, jak udało ci się osiągnąć taki sukces ?

 

Stroustrup:

To miał być tylko żart. Nigdy nie sądziłem, że ludzie mogliby brać moją książkę na poważnie. Każdy, nawet półgłówek dostrzeże, że programowanie zorientowane obiektowo jest nielogiczne, niewydajne i działa wbrew intuicji.

 

Redaktor:

Co?

 

Stroustrup:

A co do wielokrotnego wykorzystywania kodu... - kiedy słyszałeś, żeby jakaś firma działała w ten sposób ?

 

Redaktor:

No..., właściwie to nigdy, ale...

 

Stroustrup:

No właśnie! To znaczy, kilka próbowało w tamtych czasach. Była taka firma z Oregonu - Mentor Graphics, która w '90 albo '91-szym roku próbowała przepisać wszystko na C++ i niestety nie wyszło im to na dobre. Było mi ich naprawdę żal ale uważam, że ludzie powinni uczyć się na własnych błędach.

 

Redaktor:

Dokładnie. A im się to nie udało ?

 

Stroustrup:

Niestety ani trochę. Problem w tym, że większość firm ma tendencję do tuszowania swoich poważniejszych zaniedbań, a wytłumaczenie się akcjonariuszom ze straty 30 milionów dolarów, byłoby dość trudne. Sprawiedliwości stało się zadość, jednak w końcu udało im się jakoś wyjść na prostą.

 

Redaktor:

Naprawdę? No więc sam widzisz, że programowanie obiektowe skutkuje.

 

Stroustrup:

Prawie. Pliki .EXE były tak duże, że ich załadowanie na maszynie HP ze 128MB RAM-u, trwało pięć minut. Programy uruchamiały się w ślimaczym tempie. Właściwie myślałem, że będzie to główną wadą nowego języka, jednak nikogo to nie obchodziło. Firmy takie jak Sun czy HP były zbyt zadowolone ze sprzedaży swoich mocnych komputerów z ogromnymi zasobami, a wszystko po to tylko, żeby uruchamiać na nich proste, banalne programy. Wyobraź sobie, że kiedy pojawił się pierwszy kompilator C++ na komputerze AT&T, skompilowałem pod nim zwykłe "Hello World" i wprost nie mogłem uwierzyć rozmiarowi tego pliku - 2.1 MB.

 

Redaktor:

Co? Zgoda, ale kompilatory bardzo się od tamtego czasu zmieniły.

 

Stroustrup:

Czyżby? Weźmy na przykład ostatnią wersję g++ - nie uzyskasz większej redukcji objętości jak zaledwie o niecałe 0.5 MB. Mógłbym przytoczyć ci jeszcze kilka innych przykładów z całego świata. Swego czasu firma British Telecom miała z tego powodu nie lada katastrofę, ale na szczęście udało im się w porę usunąć problemy i zacząć od nowa. Australian Telecom nie miała tyle szczęścia, co ich brytyjski odpowiednik. Teraz dochodzą mnie słuchy, że Siemens buduje kolejnego "dinozaura" martwiąc się coraz bardziej o to, aby sprzęt równoważył wymagania programów. Czy zatem wielopoziomowe dziedziczenie nie jest po prostu pomyłką ?

 

Redaktor:

Przecież C++ jest bezpiecznym językiem.

 

Stroustrup:

Naprawdę w to wierzysz ? Czy kiedykolwiek pracowałeś nad projektem w C++? Oto co się dzieje: po pierwsze, w C++ istnieje wystarczająco dużo pułapek, dzięki którym tylko najbanalniejsze projekty działają za pierwszym razem. Weź np. przeładowanie jakiegoś operatora. Pod koniec projektu, prawie każdy moduł je posiada, bo w mniemaniu programistów powinno ono wystąpić, przecież o tym mówiono im na kursach szkoleniowych. Zatem ten sam operator w każdym kolejnym module oznacza coś zupełnie innego. A spróbuj nad tym zapanować, kiedy będziesz miał około setki modułów... A co do ukrywania danych: O Boże, czasami nie sposób się nie roześmiać, kiedy słyszę o firmach starających się sprawić aby ich moduły ze sobą współpracowały. Myślę, że słowo "synergetyczny" zostało specjalnie wymyślone, aby można było szefowi projektu "przekręcać nóż w żebrach".

 

Redaktor:

Muszę przyznać, że zaczynam być tym wszystkim przerażony. Mówisz, że stworzyłeś ten język po to, aby wzrosły pensje programistów? To okropne!

 

Stroustrup:

Nie zupełnie. Przecież każdy ma wybór. Nie przypuszczałem, że aż tak bardzo wymknie się to spod kontroli, jednak stało się. C++ już stopniowo wymiera, ale programiści dalej są dobrze opłacani - szczególnie ci, którzy zajmują się tworzeniem projektów za pomocą tego steku bzdur. Zdajesz sobie sprawę, że pracowanie nad dużym modułem programu w C++ nie jest możliwe, jeśli sam go nie napisałeś ?

 

Redaktor:

Jak to ?

 

Stroustrup:

Nie kojarzysz o czym mówię, prawda? A pamiętasz dyrektywę: typedef?

 

Redaktor:

Oczywiście że tak.

 

Stroustrup:

Przypomnij sobie ile czasu zabiera śledzenie "po omacku" plików nagłówkowych tylko po to, aby dowiedzieć się że np. 'RoofRaised' to liczba typu double. Wyobraź sobie ile czasu zabiera znalezienie wszystkich konkretnych dyrektyw typedef we wszystkich klasach jakiegoś większego projektu.

 

Redaktor:

Po czym zatem poznałeś swój sukces ?

 

Stroustrup:

Pamiętasz ile zajmowało stworzenie średniej objętości projektu w C ? Około 6 miesięcy. To trochę za krótko, aby facet mający żonę i dzieci mógł zarobić na utrzymanie i w miarę godziwy standard życia. A weź teraz napisz ten sam projekt używając C++...i co otrzymasz? Powiem ci - jeden do dwóch lat. Czyż to nie wspaniałe zapewnienie sobie pracy? Kolejna rzecz. Uniwersytety nie nauczały C od tak dawna, że teraz brakuje porządnych programistów piszących w tym języku. Szczególnie tych, którzy wiedzą coś na temat programowania pod systemami z rodziny Unix-a. Ilu teraz wiedziałoby co zrobić z 'malloc', skoro przez tyle lat używali 'new' - i nigdy nie zaprzątali sobie głowy sprawdzaniem wartości zwracanego kodu. W rzeczywistości, większość z programistów C++ pomija te zwracane wartości. Co się stało ze starym, dobrym '-1' ? Przynajmniej wiedziałeś, że masz błąd, bez grzęźnięcia w cały ten bałagan z 'try', 'throw' i 'catch'.

 

Redaktor:

Ale przecież dziedziczenie oszczędza mnóstwo czasu i pracy...

 

Stroustrup:

Tak sądzisz? Czy kiedykolwiek zauważyłeś różnicę między planowaniem projektu w C, a planowaniem projektu w C++? To drugie jest trzy razy dłuższe. Musisz dokładnie upewnić się, że wszystko co powinno być dziedziczone, jest dziedziczone, a wszystko co nie powinno - nie jest. A potem i tak występują w tym błędy. Kto przedtem słyszał o jakiejś konsumpcji pamięci przez program napisany w zwykłym C? A teraz znajdywanie ich, to chleb powszedni. Większość firm pod tym względem poddaje się, wypuszczają na rynek swój produkt, wiedząc że cieknie z niego jak z dziurawego worka, no ale wtedy unikają kosztów związanych z łataniem tych dziur.

 

Redaktor:

Są do tego odpowiednie narzędzia...

 

Stroustrup:

...z których większość została napisana w C++.

 

Redaktor:

Czy zdajesz sobie sprawę z tego, że jeśli opublikujemy ten wywiad, to prawdopodobnie zostaniesz "zlinczowany" ?

 

Stroustrup:

Wątpię. Jak już powiedziałem, C++ minął już swój szczyt rozkwitu i popularności i żadna firma przy zdrowych zmysłach nie zacznie tworzenia projektu w C++ bez wstępnych prób. One powinny ich przekonać, że zmierzają prosto ku katastrofie. A jeśli tego nie zauważą, to niech mają na co zasłużyli. Wiesz, próbowałem kiedyś przekonać Dennis'a Ritchie, aby przepisał Unix-a w C++.

 

Redaktor:

O mój Boże..., i co powiedział?

 

Stroustrup:

Na szczęście ma poczucie humoru. Myślę że obaj, on i Brian Kernighan już wtedy zorientowali się o co mi chodzi, ale trzymali to w tajemnicy. Dennis powiedział, że jeśli chcę, to pomoże mi napisać w C++ wersję DOS-a.

 

Redaktor:

A chciałeś ?

 

Stroustrup:

Właściwie to napisałem DOS-a w C++. Jak skończymy, to dam ci wersję demo. Działa to u mnie na Sparc 20. Chodzi jak rakieta przy czterech procesorach i zajmuje tylko jakieś 70 MB twardego dysku.

 

Redaktor:

A jak się sprawuje na zwykłym PC ?

 

Stroustrup:

Teraz to sobie żartujesz. Czy nigdy nie widziałeś Windows'95? Myślę o nim jak o moim największym sukcesie. Prawie przegrałem, zanim cokolwiek się zaczęło.

 

Redaktor:

Wiesz, ten pomysł na Unix++ naprawdę mnie zastanawia. Gdzieś na świecie ktoś na pewno się za to weźmie. Stroustrup:

Na pewno nie, jeśli przeczyta ten wywiad.

 

Redaktor:

Przykro mi, ale nie wydaje mi się, żebyśmy mogli cokolwiek z tego opublikować.

 

Stroustrup:

Ale to jest opowieść stulecia. Ja chcę tylko, żeby wszyscy moi koledzy po fachu pamiętali mnie za to, co dla nich zrobiłem. Wiesz ile zarabia w dzisiejszych czasach programista znający C++ ?

 

Redaktor:

Ostatnio słyszałem, że ci najlepsi dostają $70 - $80 za godzinę.

 

Stroustrup:

Widzisz? I założę się, że są tyle warci. Śledzenie wszystkich tych "pułapek" jakie umieściłem w C++ nie jest wcale łatwe. Tak jak już mówiłem wcześniej, każdy programista piszący w C++ czuje się związany jakąś mistyczną obietnicą do używania w swoich projektach każdego przeklętego elementu tego języka. Czasami to naprawdę mnie denerwuje, nawet jeśli jest zgodne z moim pierwotnym celem. Po tych wszystkich latach, prawie polubiłem ten język.

 

Redaktor:

To znaczy, że przedtem go nie lubiłeś ?

 

Stroustrup:

Nienawidziłem go. Wydaje się nawet niezgrabny, zgodzisz się? Ale kiedy zaczęły przychodzić do mnie tantiemy..... no cóż, sam rozumiesz.

 

Redaktor:

Chwileczkę. A co z referencjami? Musisz przyznać, że ulepszyłeś wskaźniki zwykłego C.

 

Stroustrup:

Hmm... Zawsze się nad tym zastanawiałem. Najpierw myślałem, że faktycznie je ulepszyłem. Potem jednak rozmawiałem o tym z pewnym facetem, który od początku pisał wszystkie swoje programy w C++. Powiedział mi, że nigdy nie może zapamiętać czy jego zmienne przekazywane są przez referencję czy przez dereferencję, więc zawsze używa wskaźników. Powiedział, że ta mała gwiazdka zawsze mu przypomina.

 

Redaktor:

Cóż, w tym momencie zwykle mówię: 'dziękuję ci bardzo za wywiad', ale tutaj nie wydaje się to stosownym.

 

Stroustrup:

Obiecaj mi, że to opublikujesz. Po prostu gryzie mnie sumienie, dlatego cię o to proszę.

 

Redaktor:

Dam ci znać, ale już przeczuwam co powie mój wydawca.

 

Stroustrup:

Ale kto by w to uwierzył? Mimo wszystko, czy możesz przysłać mi kopię taśmy z tym wywiadem ?

 

Redaktor:

OK, to mogę zrobić.

 

Link to comment
Share on other sites

Ciekawy wywiad. Przewrotny. Chyba był czymś rozgoryczony jak go udzielał :wink:

Myślę że jakby Stroustrup nie "poprawił" C to zrobił by to ktoś inny. Na swój sposób oczywiście. Świat w tej dziedzinie zmierza(ł) w stronę obiektowości.

Link to comment
Share on other sites

Na zaliczenie kiedyś pisałem sapera, ogólnie spoko sprawa. UI można na konsoli zrobić (chyba że chce Ci się bawić grafiką, wtedy jakaś biblioteka). Algorytm rekurencyjny, wybór rozmiaru planszy i poziomu trudności. Do tego dorobić jakiś timer i zapisywanie wyników do pliku i jest spoko program na zaliczenie

Link to comment
Share on other sites

miazga ten wywiad :D muszę go podesłać wykładowcy od C++ :D chociaż ja też uważam, że C++ jest mocno pokręcony. Podstawy są bardzo proste i łatwo przeskoczyć z C, ale bardziej zakręcone referencje, wskaźniki do składowych klasy, inteligentne wskaźniki do obiektów klas, wielokrotne dziedziczenie, polimorfizm i kilka innych rzeczy potrafią dać w kość :evil: Dlatego osobiście wolę C# 8) bardzo przyjemnie się pisze i bez pokrętnych konstrukcji, nowoczesna, stale rozwijana technologia, w ogóle to .NET jest super :) Java też jest niczego sobie, chociaż ja nastawiłem się na C# i .NET .

 

PS. Ja wiem do czego ten malloc i jak go używać :P

Link to comment
Share on other sites

Ten wywiad to fake. Stroustrup nigdy tego wywiadu nie udzielił.

A co do tematyki wątku to polecam http://pl.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest.

Pokazuje jak dziwny jest język C ;)

Dla przykładu program który wylicza przybliżoną wartość liczby Pi przez obliczenie swojej własnej powierzchni:

#define _ -F<00||--F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
            __-_
       __-__-__
    __-__-__-__
  __-__-__-__-_-_
 __-__-__-__-__
 __-__-__-__-__
__-__-__-__-__-_
__-__-__-__-__-_
__-__-__-__-__-_
__-__-__-__-__-_
 __-__-__-__-__
 __-__-__-__-__
  __-__-__-__-_-_
    __-__-__-__
        __-__-_-_
            __-_
}

lub program rysujący kulę zieską w rzucie Merkatora:

main(l
      ,a,n,d)char**a;{
  for(d=atoi(a[1])/10*80-
 atoi(a[2])/5-596;n="@NKA\
CLCCGZAAQBEAADAFaISADJABBA^\
SNLGAQABDAXIMBAACTBATAHDBAN\
ZcEMMCCCCAAhEIJFAEAAABAfHJE\
TBdFLDAANEfDNBPHdBcBBBEA_AL\
 H E L L O,    W O R L D! "
   [l++-3];)for(;n-->64;)
      putchar(!d+++33^
           l&1);}
Odpuść sobie naukę martwych języków i poczytaj coś o nowoczesnych dynamicznych językach jak Python czy Ruby :)

 

Pozdrawiam

Artur

Link to comment
Share on other sites

Hmm "martwych języków"?? to chyba się troszkę rozpędziłeś, C, c++ jest nadal szeroko stosowany, ale jakoś tak wychodzi dziwnie że zwykle osoby związane z java'ą nazywają je "wymarłymi" lub językiem dinozaurów.

Link to comment
Share on other sites

Odpuść sobie naukę martwych języków i poczytaj coś o nowoczesnych dynamicznych językach jak Python czy Ruby :)

 

Pozdrawiam

Artur

A powiesz mi w czym pisane są twoje nowoczesne dynamiczne języki? Zdziwiony że w C.

W czym pisane są maszyny wirtualne Javy i C#?

W czym pisane są sterowniki do sprzętu? Zapewniam Cie że nie w Pythonie.

W czym pisane jest oprogramowanie embedded?

 

Na razie w Polsce łatwiej zdobyć pracę jako programista C/C++ niż python.

 

Dobry programista nie powinien zamykać się na jedną technologię i powinien znać słabe i mocne strony różnych języków.

 

Co do pierwotnego pytania, to wybór masz szeroki.

coś z gier:

-othello

-tetris

komunikacja z sprzętem (np pokazywanie położenia z odbiornika GPS)

jeśli masz możliwości dołóż układ sprzętowy na rs-232 dwie diody jeden przełącznik i steruj tym z PC (masz dwa programy w C)

kwestia wyobraźni i czasu jaki chcesz na to przeznaczyć?

 

 

Pozdrawiam

Robert

Link to comment
Share on other sites

ale jakoś tak wychodzi dziwnie że zwykle osoby związane z java'ą nazywają je "wymarłymi" lub językiem dinozaurów.

Tu bym nie uogólniał.

 

Kol. artee trochę się rozpędził z chowaniem "C/C++" do grobu. Nie wyobrażam sobie pisania efektywnego softu np na urządzenia mobilne czy komunikacji sprzętowej w czymś innym.

Z resztą Java czy Ruby to języki intrepretowane. Inny poziom, inne zastosowania - to tak jakby porównywać śliwki do jabłek.

Link to comment
Share on other sites

Do Smuku:

Aż mnie zmierziło porównanie do osoby związanej z Javą ;)

A tak na poważnie...

Programuje zawodowo w C/C++ od lat już około 16 i obserwując "dynamikę" rozwoju tego języka (czyli w chwili obecnej C++) cały czas podtrzymuję zdanie.

Nowa wersja standardu jak dobrze pójdzie ujrzy światło dzienne w roku 2014 i oprócz kolejnego zastosowania nawiasów <>, funkcji lambda, lepszym wątkom i lepszego for-a nie oferuje potencjalnemu programiście nic więcej.

Praktycznie każdy bardziej popularny język programowania oferuje więcej.

Programuję w C# i Javie także od wielu lat oczywiście bo tak każe rynek i niestety te języki także nie oferują składniowo nic więcej w porównaniu z C/C++, nadrabiając to ewentualnie znacznie lepszym zestawem bibliotek.

Języki dynamiczne i funkcyjne oferują znacznie bogatszy wachlarz mozliwości dzięki czemu możemy się bardziej skupić na istocie problemu a nie na szukaniu na Code Project jak wywołać funkcję do ściągnięcia pliku przez sieć i dlaczego ta funkcja jest inna w zależności od wersji windows oraz dlaczego pod Unixami i Mac-ami jest inaczej...

Standardowo więc dostajemy język z "bateriami" dzięki czemu robimy to co naprawde zamierzaliśmy. Co więcej dzięki znacznie bardziej eleganckiej i czytelniejszej składni możemy pisać o wiele zwieźlej i czytelniej niż w C/C++ czy C#/Javie.

Różnica oszczędności jest dość duża, w przypadku porównania Python/C bez problemu uda się osiągnąć róznice 15-krotnie mniej kodu.

Dodajmy, że ten kod będzie znacznie bardziej czytelny, łatwiejszy w analizie i wieloplatformowy. Nie wspominając o znacznie mniejszej ilości błędów (uzależnionej praktycznie od ilości linii kodu)

Zainteresowanych tematem zapraszam może na priva. Napisałem wiele dużych systemów w tych językach i mogę gadać godzinami ;)

Resumując martwy nie znaczy się że nikt go nie używa tylko oznacza to jego rozwój. Po prostu nic nowego się tutaj już nie pojawi. Pozostanie natomiast przez baardzo długi czas językiem niskopoziomowym.

 

Do Robot_-a:

Wiem w czym są pisane ;)

Niestety to nie jest argument bo tak naprawdę sązapisane jako instrukcje assembler-a i to jest tak na prawdę język nr 1.

Oprogramowanie embedded? Nie do końca C/assembler. Są już rozwiązania w Javie czy Pythonie. I to w jednym scalaku :)

Co do pracy oczywiście masz rację, indeks TIOBE (http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html) pokazuje jakie jest zainteresowanie danym językiem.

C/C++/Javę/C# trzeba po prostu umieć bo tak każe rynek pracy. Niemniej jeżeli kolega Grzechu chce się pobawić programowaniem i nazywać siebie programistą warto wykroczyć poza szarość ;)

 

Do Alyan-a:

Oczywiście masz rację. Specyfika sterowników czy niskopoziomowych rozwiązań wymaga użycia języka bliskiego platformie. Niemniej wady pozostają takie same: nieprzenośny kod, wstawki w assemblerze, etc. W dużych rozwiązaniach niestety użytkownika nie interesuje czy program wykona coś w 3ms czy 30 ms, ważne by był pewny i bezpieczny.

Porownując chociażby implementację popularnego Apache'a który jest w C/C++ z serwerem WWW napisanym w języku Erlang. Ten "indiański" umiera w przedbiegach przy 10 tys zapytań, ten Ericcsonowy odpowiada nawet przy 60 tys :).

C/C++ w nieodpowiednich rękach niestety to czyste zagrożenie (błędy typu przepełnienie sterty, przepełnienie bufora, etc...)

Swoją drogą wstawki w C/C++ świetnie da się uzywać w Pythonie czy Rubym. Są to języki specjalnie zaprojektowane w tym celu. Każda praktycznie istniejąca większa aplikacja do 3D posiada właśnie wsparcie do Pythona lub czegoś w tym rodzaju. Szybkość C i wygoda Pythona :)

BTW popularny serwis YouTube jest praktycznie w większości napisany w Pythonie i nikt nie narzeka na problemy z wydajnością. Podobnie jak większość usług Google (Java i Python, z C++ w newralgicznych miejscach wymagających specjalnej wydajności).

 

Do Grzechu:

Tak jak koledzy pisali, warto zobaczyć na początku jakąś algorytmikę.

Może zamiast obtrzaskanych wieży Hanoi warto zmierzyć się z czymś wiekszym?

Np jakaś ksiązka adresowa czy cuś w tym rodzaju? Nauczysz się dzięki temu jak wygląda zarządzanie pamięcią, podstawowe typy danych jak listy jedno i dwukierunkowe oraz współpracy z interfejsem użytkownika.

Albo pokaż nauczycielowi jak załadować Pythona czy Rubiego w C ;)

6 z informatyki murowane :)

Pisanie wieży Hanoi trudno uznać za wyzwanie dla 19-latka jak 14-latki piszą już duże aplikacje internetowe ;)

 

Pozdrawiam

Artur

Link to comment
Share on other sites

Pisanie wieży Hanoi trudno uznać za wyzwanie dla 19-latka jak 14-latki piszą już duże aplikacje internetowe ;)

 

To żaden argument. Może niektóre 14-latki mają do tego zapał i predyspozycje ? Mozart skomponował pierwszy utwór w wieku 7 lat. Czy z tego wynika że też miałem szansę ? :wink:

Z postu Grzecha nie wynika że chciałby się w czymś zagłębić. Raczej oczekuje pomysłu na zaliczenie.

 

Z niektórymi stwierdzeniami się nie zgodzę np W dużych rozwiązaniach niestety użytkownika nie interesuje czy program wykona coś w 3ms czy 30 ms. Ale faktycznie uważam że dyskusja o konkurowaniu wątków bardziej odpowiednia jest na priva :wink: Poza tym to co duże wcale nie oznacza bardziej skomplikowane. No ale mogę się mylić ...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.