Nowe posty

Autor Wątek: Jaki język programowania wybrać do nauki? C++ a może C#?  (Przeczytany 13994 razy)

tajwan

  • Gość
chę się nauczyć programować i nie wiem co wybrać c# czy c++ i nie chodzi mi oto że c# jest na windowsa a na linuxa obsługuje go tylko środowisko mono. Ogólnie nie wiem któey wybrać

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3062
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #1 dnia: 2011-05-19, 07:29:42 »
Z jednej strony - C++ to sam język. C# to język + fura przydatnych bibliotek. Jak sam napisałeś, C# jest bardziej zafiksowany na środowisko z Redmond, co więcej z tego co czytałem Mono zostało sierotą.

Jeżeli chodzi o perspektywiczność, kompletność i tworzenie większych aplikacji:
1. C++ + QT -> środowisko programistyczne QT Creator.
2. Java -> Środowisko programistyczne NetBeans, Eclipse bądź IntelliJ IDEA CE (dla początkującego polecam ten ostatni).

Jeżeli chodzi o programowanie w sensie zabawę z algorytmami, to polecam Pythona, Ruby'ego albo Scalę.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

ZipoKing

  • Gość
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #2 dnia: 2011-05-19, 07:58:36 »
Dokładnie, musisz sobie zadać pytanie w jakim kierunku chciałbyś iść z programowaniem: hobbistycznie, zawodowo na aplikacje desktopowe, zawodowo na aplikacje webowe, czy też aplikacje mobilne (np. Android). Do wyboru więc masz:
1) Wspomniane powyżej C++ i Qt pozwoli ci pisać aplikacje na desktop działające w każdym systemie operacyjnym (Linux, Windows, Mac OS X)
2) Java (J2SE w przypadku aplikacji desktopowych tudzież J2EE jak chcesz się pobawić w programowanie aplikacji webowych - w tym przypadku polecam także bliższą znajomość z Google Web Toolkit)
3) W przypadku aplikacji webowych: PHP (dla początkujących bardzo dobre, polecam tutaj także nauczyć się korzystać z jakiegoś frameworka, np. Symfony), Python (+ DJango) tudzień (mój faworyt ;)) Ruby on Rails (dzięki dużej liczbie dostępnych pluginów strony tworzą się naprawdę szybko :))
4) Aplikacje mobilne - możesz albo iść w kierunku urządzeń iCośTam (wtedy pozostaje ci Objective C) lub np. Androida (Java)

Jeżeli zaś chodzi o C# (w znaczeniu platformy .NET, nie zaś samego języka), to ostatnie przygody (np. problemy z patentami) Mono pokazują, że raczej język ten nie zadomowi się na "alternatywnych" systemach i zostanie domeną systemów Microsoftu. Dlatego też nie polecam ;)

  • Gość
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #3 dnia: 2011-11-28, 12:12:59 »
Czy coś się zmieniło na rok 2012? Którego języka warto się uczyć hobbistycznie do pisania okienkowych aplikacji desktopowych pod Linuksem? Zastanawiam się nad Rubym i tym Mono zmieniło coś się i warto teraz się brać za C# pod Linuksem? A może jakiś inny język polecacie z prostą składnią. Ostatnio słyszy się o rozwijającym się szybko D2.

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #4 dnia: 2011-11-28, 13:22:48 »
@lares

Przy programowaniu aplikacji graficznych na Linuksa musisz raczej zacząć od wyboru biblioteki widgetów: Qt albo GTK.

Qt jest przenośne, obiektowe i dobrze integruje się z każdym systemem i środowiskiem (KDE, Gnome, Windows, Mac, ...).
GTK widzi tylko czubek nosa Gnome, więc ma gdzieś ustawienia twojego środowiska.
Jak dla mnie wybór jest oczywisty: Qt. Ale co wybierzesz to twoja sprawa.

Używać Qt najlepiej w C++, choć możesz pisać też w Javie, Pythonie (PyQt) i pewnie kilku innych językach.

  • Gość
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #5 dnia: 2011-11-28, 13:38:08 »
@ultr
Zgadza się ale C++ jest dość trudny i bardziej skierowany dla doświadczonych programistów. A czy pod GTK to czasem nie trzeba pisać w C? Czy pod ruby jest jakaś biblioteka graficzna, ponoć bardzo szybko się piszę w tym języku w pełni obiektowym i jest  
dość prosty?

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #6 dnia: 2011-11-28, 19:37:12 »
Jest QtRuby: http://en.wikipedia.org/wiki/QtRuby

Choć nie wiem jak z aktualnością tej biblioteki. Ostatnie wydanie było w 2010 roku.
PyQt na pewno jest żywym projektem, QtRuby nie wiem.

Ksanderon

  • Gość
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #7 dnia: 2011-11-30, 11:15:29 »
jak dla mnie nieznajomość jakiegokolwiek języka kompilowanego mającego dostęp niskopoziomowy do zasobów jest kalectwem bo z praktycznego punktu widzenia programista znający jedynie języki interpretowane, obiektowe, wysokiego poziomu kompletnie nie ma pojęcia o tym co tak na prawdę robi, mnoży przesądy, ma problem z zaimplementowaniem samemu(gdy zajdzie taka potrzeba) nawet najprostszych algorytmów z których korzysta etc.

inną sprawą jest, że wykonywanie pewnych spraw jest w językach "patrz wyżej" dużo bardziej przyjemne, efektowne, efektywne(pod względem czasu programisty poświęconego na projekt).

osobiście uważam, że znajomość c/c++ + Python jest wysoce przydatna- kluczowy kod piszemy w c lub c++, dbając o wydajność lub implementując brakującą funkcjonalność, resztę- to co będzie często zmieniane, nie jest kluczowe ze względu na wydajność etc... w Pythonie. Pokusiłbym się nawet o stwierdzenie, że całość można pisać w Pythonie, tylko w razie potrzeby przepisywać część kodu na c;

Co do bibliotek graficznych- z całą pewnością w Pythonie jest to co trzeba- ostatnio skłaniam się jednak w aplikacjach biznesowych do stosowania innego modelu- cały interfejs obsługiwany przez przeglądarkę internetową- brak wymagań od sprzętu klienta(może "odpalić" aplikację na telefonie, padzie, komputerze- słowem mobilność), systemu, prostota "aktualizacji" i masa innych korzyści przy na prawdę identycznym nakładzie pracy co z okienkami- opracowałem do tego sporą biblioteką (dostosowującą automatycznie np. część wyświetlanych elementów tak aby ładnie wyświetlały na różnych rozdzielczościach lub sterowanych różnymi wskaźnikami )integrującą JavaScript, html5, serwer w c++ i skrypty obsługujące daną aplikacją w Pythonie lub dowolnym innym języku interpretowanym(kwestia bindingu do biblioteki dynamicznej) oraz zbiór narzędzi ułatwiających tworzenie okienek np. edytor formularzy w podobny do tego znanego z visual studio- zastanawiam się czy warto by to "upublicznić".

darkdancer

  • Gość
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #8 dnia: 2011-12-03, 16:49:25 »
Cytat: lares
Zgadza się ale C++ jest dość trudny i bardziej skierowany dla doświadczonych programistów. A czy pod GTK to czasem nie trzeba pisać w C?
Nie. Jeśli idzie GTK+3.0 możesz pisać w C, C++, Python, Vala, JavaScript. Do prostych (nawet niekoniecznie) programów w zupełności wystarczy Python w którym nie ma przerostu formy nad treścią (aczkolwiek można takową wprowadzić...)

Dyzajash

  • Gość
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #9 dnia: 2011-12-03, 19:28:43 »
Kiedyś mój starszy kolega powiedział: "Jeśli chcesz się stać prawdziwym programistą i myśleć jak programista zacznij od podstaw C.". Nie podobał mi się ten język z początku, ale z czasem wyrobiłem sobie dzięki niemu kilka przydatnych nawyków. A jeśli C ci się nie widzi to zacznij od Pythona.

Ksanderon

  • Gość
Jaki język programowania wybrać do nauki? C++ a może C#?
« Odpowiedź #10 dnia: 2011-12-04, 22:40:01 »
C/C++ to nie są trudne języki- trudne bywają problemy które się w nich rozwiązuje.
Przewagę języków wyższego poziomu dostrzegam jedynie tam, gdzie jest potrzeba wytworzenia szybko, w dużej ilości, nieskomplikowanego kodu. Gwarantuję, że szybciej można nauczyć się dobrze pisać w C niż w Pythonie C# czy Javie- tzn. generować dobry jakościowo, przedstawiający jakąś konkretną wartość kod.

Język interpretowany na początek to bardzo zły pomysł. Można się bardzo szybko nauczyć... ale "antyprogramować" i nabyć kupę złych nawyków.

Niestety "nauka musi boleć" i jeżeli chcesz nauczyć się dobrze kodzić musisz to zaakceptować i na początku trochę się pomęczyć. To tak jak z nauką pochodnych i całek- w trakcie nauki klniesz na czym świat stoi, gdy już znasz nie wyobrażasz sobie jak można bez nich cokolwiek policzyć.

Pozwól, że rozwieję część wątpliwości- jeśli jakaś biblioteka jest w c- możesz jej użyć w c++, rzadko na odwrót(wymaga to czasem sporych(i bezsensownych) nakładów pracy), jeśli coś jest dla c lub dla c++ można to przerobić na moduł Pythona. Główna implementacja Pythona jest napisana w C(i sporej części innych języków interpretowanych), oznacza to, że nie ma w Pythonie czegoś czego nie da się napisać w c lub c++ i że istnieją w nich odpowiedniki dowolnych bibliotek Pythona.

Biblioteki graficzne są fajne i są do każdego języka, zwykle nawet takie same wszędzie, jednak programowanie interfejsu to proces zwykle najprzyjemniejszy i najprostszy pod względem programistycznym, więc nie warto wybierać pierwszy język akurat pod tym względem- chyba, że chcesz zajmować się tylko tym(ale to raczej nudne i mało twórcze).