|
Sens programowania w systemie Linux
godzio89 - 16-08-2008 03:16
Tak właśnie się zastanawiam nad sensem programowania w systemie Linux. Zazwyczaj osoba programująca uczy się np języka C++, później dokłada np. do tego WinAPI i różne inne rzeczy. Osoba kończy studia i idzie do pracy jako programista (pieniądze ma dlatego, że pisze oprogramowanie pod Windows). Dlatego jeżeli ktoś chce zostać w przyszłości programistą to nie lepiej wybrać system Windows niż system Linux? Chętnie przeczytam wasze wypowiedzi na ten temat.
tomii - 16-08-2008 07:33
Według mnie jeśli ktoś chce zostać programistą to powinien umieć dość łatwo opanowywać nowe biblioteki i api. Wszystkie dobre cechy programowania można się nauczyć na każdym systemie, później jedynie zostaje krótkie dostosowanie się do systemu(kto wie czy nie będzie potrzeby pisania pod linuxa). To tak jak pisanie na studiach w jednym -dwóch językach a później w innych-przesiadka nie jest wcale taka trudna. pozostaje jeszcze kwestia języków które pod każdą platforma są niemal identyczne jak java.
AdeBe - 16-08-2008 08:26
Może pod samego linuksa znajdziesz w Polsce mało ofert, ale bardzo dużo firm pisze aplikacje międzyplatformowe (np. JAVA) i niejednokrotnie widziałem w ofertach pracy "znajomość systemu Linux i UNIX"
grucha - 16-08-2008 09:44
A co to za różnica na jakim systemie programujesz? Języki programowania są w większości wieloplatformowe, poszczególne implementacje się co nieco różnią, ale nie aż tak, by to robiło różnice. Jak chcesz się nauczyć programować, to się ucz języka, nie bibliotek, bo biblioteki się zmieniają, a języki zostają te same. Pozatym, dobry programista nie ograniczy się do C++, WinAPI i paru innych bibliotek.
pieniądze ma dlatego, że pisze oprogramowanie pod Windows
Prędzej systemy wbudowane, bo to one, a nie systemy PC-towe stanowią większość systemów operacyjnych.
grzesiek - 16-08-2008 10:18
Trochę dziwne pytanie... widać, że nie bywasz na grupach dyskusyjnych np. pl.comp.lang.c ;-) Teraz jest taki trend, że odchodzi się od systemów... wszystko musi być wieloplatformowe. Wyobrażasz sobie ile wart by był Firefox gdyby działał tylko pod Windows? Tak się składa, że ja kiedyś porzuciłem Windowsa właśnie ze względów programistycznych - drogie środowiska programistyczne, uzależnienie od trendów Microsoftu.... itp. Zaprzestałem się uczyć WinAPI bo wchodził .NET, a ten tylko z hasła jest platformą do pisania programów na wiele systemów ;-) Bardzo długo szukałem czegoś "dla mnie", Znalazłem GTK+, umożliwiało naukę jeszcze na Windowsie wiec mogłem ją testować ale jeszcze nie byłem zmuszony sie przesiadać na Liuxa, gdy polubiłem GTK+ zabrałem się za walkę z Linuxem - po długich bojach udało się, dziś jestem szczęśliwym użytkownikiem Debiana ;-) Linux dla programistów to raj, chcesz się dowiedzieć jak jakiś program realizuje pewne funkcje, zaglądasz do kodu, albo jak twoja ulubiona biblioteka (którą możesz sobie wybrać GTK+/Qt...) "to" robi? zaglądasz w kod. Od czytania kodów dobrych projektów można się bardzooo wiele nauczyć ;-) A tak apropo zarabiania pieniędzy... tego nie da się zaplanować. Możesz programować bo to lubisz, możesz też z czasem na tym zarabiać ale jeżeli interesuje Cię tylko zarabianie to nie będzie łatwo ;-) bo przed tobą kilka lat nauki bez gwarancji zarobku i bez różnicy na jakim systemie.
Theq - 16-08-2008 10:29
Zazwyczaj osoba programująca uczy się np. języka C++, później dokłada np. do tego WinAPI i różne inne rzeczy. Osoba kończy studia i idzie do pracy jako programista (pieniądze ma dlatego, że pisze oprogramowanie pod Windows).
Roznie bywa, ja "przeprogramowalem" cale studia na Windowsie a teraz mam pienieadze dlatego, ze pisze oprogramowanie pod Linuksem. I troche teraz zaluje, ze wczesniej nie zainteresowalem sie bardziej programowaniem "pod linuksa". Imo Linux bardzo pomaga, masz bardzo dobre narzedzia do programowania, duzo kodu (co prawda roznej jakosci) do przegladu, mozesz dolaczyc do jakiegos projektu open source i nauczyc sie pracy zespolowej. Nauczysz sie pisania wieloplatformowego, czyli nie wazne czy bedziesz pisal pod Linuksem, BSD, Macosem czy innym Solarisem, a nie tylko "pod Windows". Poza tym to nie jest tak, ze sie uczysz jednego api cale zycie. Mozesz troche tego wolnego czasu poswiecic na zaznajomienie sie z winapi ;)
Dlatego jeżeli ktoś chce zostać w przyszłości programistą to nie lepiej wybrać system Windows niż system Linux?Chętnie przeczytam wasze wypowiedzi na ten temat.
Jesli chodzi o polskie oferty pracy to zdecydowany prym wiedzie Java, jezyki skryptowe (perl, php, python, ruby), no i jest tez troche "windowsowego" C# i .NET (moze jak skonczysz studia to bedzie sie tego dalo normalnie uzywac pod Linuksem ;) ). Ogolnie nie tak latwo znalezc robote pod "C++ i WinAPI", co nie znaczy ze jej nie ma.
Jak chcesz się nauczyć programować, to się ucz języka, nie bibliotek, bo biblioteki się zmieniają, a języki zostają te same.
Jak chcesz sie nauczyc programowac, to sie ucz podstaw progamowania, matematyki i tych innych "bzdur" co na studiach ucza, a nie jezyka, bo jezyki sie zmieniaja, a podstawy zostaja takie same.
larret - 25-08-2008 09:08
Programowanie nie opiera się na znajomości bibliotek systemowych, narzędzi lub składni języka. Polega ono na umiejętnym ich wykorzystaniu. Dobry programista pozna a następnie umiejętnie wykorzysta odpowiednią bibliotekę - nawet jeżeli nie zna od deski do deski jej specyfikacji.
fsl - 25-08-2008 13:09
Pozostaje dodać, że duża część oprogramowania które kiedyś było uruchamiane przez użytkownika na swoim komputerze osobistym, obecnie znajduję się w sieci (użytkownik musi mieć przeglądarkę www uruchomioną na jakimś urządzeniu pod kontrolą jakiegoś systemu operacyjnego.), aplikacje webowe natomiast często są 'hostowane' przez platformy nie microsoft'owe. Dodatkowo frameworki używane do produkcji takiego oprogramowania są często wieloplatformowe.
Dla mnie linux jest środowiskiem o wiele bardziej przyjaznym niż windows jeśli chodzi o programowanie. Tak więc wg mnie Linux jest lepszym wyborem dla (początkującego) programisty.
giaur - 25-08-2008 14:41
No niestety ja nie moge sie zgodzic ze wszystkimi powyzszymi stwierdzeniami.
Będąc naprawdę obiektywnym - porządnego IDE dorównującego Miscrosoft Visual Studio 2008 i wcześniejszym pod Linuksem po prostu nie ma....
Jest co prawda Code::Blocks, KDevelop czy Eclipse - ale naprawdę, bądzmy szczerzy - nawet w 1/10 nie dorównują Visualowi - IDE Visual Studio to chyba jedyny produkt, ktory sie tej firmie udał.
Tak więc nie mozna powiedziec, ze programowanie pod Linuksem jest wygodniejsze - brak porządnego IDE z PORZÂĄDNYM IntelliSence czy debuggerem - a to czasami ogromnie utrudnia pracę - nie mówiąc już o zagmatwaniu autoconf i automake - uczyc sie tego to jakby uczyc sie nowego języka programowania, a dokumentacja jest co najmniej niejasna. Poza tym brak jest często dobrych, spójnych frameworków i bibliotek - skladnia GTK to dla mnie na przylad jakas pomylka - to już WinApi jest skonstruowane bardziej logicznie...
Tak więc pod Linuksem w tym sensie jest trudniej i niestety mniej wygodnie niz pod Windows - i mowie to jako zwolennik linuksa, ale niestety trzeba byc obiektywnym.
fsl - 25-08-2008 17:25
porównujesz tutaj darmowe narzędzia z rzeczywiście udanym kolosem jakim jest Visual Studio. Ale nie należy zapominać, że wśród płatnych produktów oprócz C++ Builder'a i VS istnieją inne komercyjne IDE platformowo niezależne do zastosowania z chyba wszystkimi popularnymi technologiami produkcyjnymi (językami programowania, frameworkami) np. Intellij IDEA dla 'java', Zend Studio dla 'php+zend framework', Wing IDE dla 'python' itd. zresztą tutaj jest małe zestawienie dostępnych IDE (pewnie nie wszystkich): http://en.wikipedia.org/wiki/Compari...t_environments
Jeśli położymy na szalę z jednej strony VS + .NET + fakt, że 91% komputerów osobistych działa pod kontrolą Windows a z drugiej strony kontrolę nad systemem operacyjnym i świadomość wiedzy 'co się dzieje w danej chwili': to .. każdy oceni i wybierze sam na czym mu zależy.
Dodać trzeba jeszcze, że na korzyść Windows przemawia fakt iż można korzystać z otwartego oprogramowania co daje tej platformie (programistycznej- cały czas o programowaniu ;)) więcej dostępnych technologii w połączeniu z technologiami MS które są jednoplatformowe. Na niekorzyść przemawiają częste problemy z implementacją tych technologii i administracją...(tych nie by MS, bo i tutaj znowu plus- narzędzia MS dobrze się ze sobą integrują) (a może nie ma problemów? - każdy niech oceni sam).
grzesiek - 25-08-2008 18:14
A w ogóle to dyskusja na temat czego się uczyć aby dobrze wyjść na tym finansowo, a czego aby pisać kod w swoim ulubionym języku/systemie to dwa różne tematy. Oczywiście, że na Windowsie możesz zarobić szybciej i co z tego? W programowaniu trzeba się cały czas uczyć. To nie jest bajka. To ciężka charówa, Póki człowiek ma do tego zapał (a uwierz mi, z czasem go stracisz, 3-5 lat), potem przestaje to być zabawą tylko ciężką praca. Nie wyobrażaj sobie, że jak się nauczysz programować to będziesz zawodowym programistą. Programować umie bardzo wielu ludzi, a żyje z tego niewielu. A Ty już tu całą swoją karierę planujesz... spróbuj, zobacz, poprogramuj sobie rok, dwa i potem zadaj sam sobie to pytanie co warto a co nie warto, a może za 2/3 lata w ogóle zmienisz zdanie ;-) Nie chcę Cię zniechęcać ale to ciężki kawałek chleba...
Theq - 25-08-2008 20:19
Będąc naprawdę obiektywnym - porządnego IDE dorównującego Miscrosoft Visual Studio 2008 i wcześniejszym pod Linuksem po prostu nie ma....
Jest co prawda Code::Blocks, KDevelop czy Eclipse - ale naprawdę, bądzmy szczerzy - nawet w 1/10 nie dorównują Visualowi - IDE Visual Studio to chyba jedyny produkt, ktory sie tej firmie udał.
Hahaha, to ma byc obiektywizm? Zeby stawiac Code::Blocks i KDevelop obok Eclipse to juz przesada. Zgadzam sie, ze Visual to swietne IDE, korzystalem z niego przez dlugi czas. Ale BARDZO pan przesadza mowiac, ze Eclipse nie dorownuje VS nawet w 1/10. Nawet nie mowie tutaj o Javie. Eclipse uzywam glownie do C++. Oczywiscie trzeba chwile czasu poswiecic nad konfiguracja, zeby dostosowac IDE pod siebie. No, ale programista to juz czlowiek rozumny, a nie ZU. Mi tam w pracy wystarcza, a napewno nie jestem jakims fanatykiem, zeby sie meczyc w robocie z jakimis IDE 10x gorszym od VS. Ogolnie jestem bardzo zadowolony i nie widze sensu pisac pod VS, no chyba, ze bym zaczal pisac w C# czy innym .NET
Tak więc nie mozna powiedziec, ze programowanie pod Linuksem jest wygodniejsze - brak porządnego IDE z PORZÂĄDNYM IntelliSence czy debuggerem - a to czasami ogromnie utrudnia pracę -
Jest bardzo dobre IDE z bardzo dobrym IntelliSense i debuggerem oraz innymi narzedziami. Dodatkowo latwy dostep do kodu zrodlowego oraz szybka instalacja plikow deweloperskich dodatkowo ulatwia prace.
nie mówiąc już o zagmatwaniu autoconf i automake - uczyc sie tego to jakby uczyc sie nowego języka programowania, a dokumentacja jest co najmniej niejasna.
A kto ci karze recznie w tym grzebac, czy wogole tego uzywac.
Poza tym brak jest często dobrych, spójnych frameworków i bibliotek - skladnia GTK to dla mnie na przylad jakas pomylka - to już WinApi jest skonstruowane bardziej logicznie...
Zalezy o czym mowimy. W javie brak dobrych frameworkow? Ok, dla mnie GTK to tez pomylka, dlatego korzystam z QT. Jedyne czego mi by brakowalo, to czegos na miare DirectX 10.
Tak więc pod Linuksem w tym sensie jest trudniej i niestety mniej wygodnie niz pod Windows - i mowie to jako zwolennik linuksa, ale niestety trzeba byc obiektywnym.
Moj obiektywizm jest bardziej obiektywny od panskiego ;)
genobis - 25-08-2008 20:48
Temat już trochę wyczerpany, ale - jako że programowaniem zajmuję się, że tak powiem, zawodowo - pozwolę sobie dorzucić swoje trzy grosiki ;-)
Grosik 1: Tak jak mówili przedmówcy, zależy w czym się pisze. Programowanie to bardzo szerokie pojęcie i nie musi oznaczać ani C/C++, ani aplikacji opartych na WinAPI. Ani nawet na win32. Jeśli jest to Java, Python, PHP - to na Linuksie często jest nawet, z różnych względów, wygodniej. A nawet jeśli piszemy w C++ i chcemy, by nasze programy działały także pod Windows - dzięki takim bibliotekom jak QT, GTK, czy wxWidgets, nie jest to taki znowu problem. Temat .NET pominę, ale w tym też można pracować pod Linuksem i w dodatku mieć niezłe efekty.
Grosik 2: Dobre IDE to dużo, ale nie wszystko. Wielu doświadczonych programistów używa vi, czy tam emacsa i osiągają znacznie lepsze rezultaty niż początkujący ma szansę osiągnąć choćby w najbardziej wypasionej wersji VS. Wiem, że to truizm, ale chyba komuś się o tym tutaj zapomniało: IDE może tylko usprawnić pracę, czasem bardzo, ale jej nie wykona.
@giaur Do pracy używam NetBeansa, który ma zarówno porządne uzupełnianie kodu (w ogóle co to za słowotwór "intellisense") jak i debugger, profiler, wsparcie dla wielu różnych systemów kontroli wersji, testów jednostkowych i gazylion innych funkcjonalności, których nie ma tu po co wymieniać. Z Eclipse nie korzystałem, ale podobno też NB nie ustępuje. Niech nikt nie mówi, że VS jest jedynym udanym produktem MS. Owszem, to dobry program, nawet bardzo dobry, ale żaden cud. Sam Windows i MS Office są produktami bardzo dobrymi i odpowiednimi dla olbrzymiej liczby użytkowników.
Grosik 3: a propos nauki, to chyba najmądrzejsze słowa jakie tu padły napisał Theq: Jak chcesz sie nauczyc programowac, to sie ucz podstaw progamowania, matematyki i tych innych "bzdur" co na studiach ucza, a nie jezyka, bo jezyki sie zmieniaja, a podstawy zostaja takie same, I o to właśnie chodzi! To, czy to jest Windows, czy Linux, tak naprawdę ma znaczenie marginalne (chociaż osobiście uważam, że pod L. jest wbudowanych więcej przydatnych narzędzi). Nawet wybór języka jest drugorzędny - i tak wszystko to będzie się zmieniać. Ważne są algorytmy i struktury danych, zasady OOP i wzorce projektowe, itp. itd...
Grosik bonusowy: programuję w Javie. API jest bardzo dobrze udokumentowane, jednak czasem to mało - albo po prostu jestem czegoś ciekaw. Wtedy mogę zajrzeć do kodu źródłowego - i to jest największa, być może, zaleta otwartego programowania. Możliwość nie tyle jego ulepszania, co w ogóle sprawdzenia jak właściwie działa ;-) To bardzo rozwijające doświadczenie, a żadne zamknięte biblioteki tego nie zapewnią.
giaur - 26-08-2008 07:09
Oczywiscie trzeba chwile czasu poswiecic nad konfiguracja, zeby dostosowac IDE pod siebie. No, ale programista to juz czlowiek rozumny, a nie ZU.
Owszem, tylko wg mnie idea IDE jest troche inna - to jest Zintegrowanie ÂŚrodowisko Programistyczne, czyli: instalujesz, tworzysz nowy projekt, kompilujesz i dziala - jest od razu wszystko czego potrzeba do pracy. Po prostu nie ma czasu, zeby kazdy z 5 osobowego zespołu poswiecal kilka dni na "dostosowanie ide do siebie" po to, zeby w ogole mozna bylo zaczac prace. Podam przykład z Code::Blocks - w oknie "nowy projekt" jest duzo typów projektów - wygląda ładnie, ale ile z nich dziala po instalacji? Zeby tylko skonfigurowac obsluge wxWidgets, musialem googlowac kilka dni... Co do frameworkow jeszcze - javy nie znam bo nigdy w javie nic nie pisalem, ale do C++ znam tylko 2 dobre biblioteki: wxWidgets (moim zdaniem lepsza od VCL Borlanda, chociaz bardziej przypomina MFC momentami) i QT (sam nie korzystalem, ale slyszalem sporo dobrych opinii - minus: platna do wykorzystania komercyjnego). Jednak niczego dorównującego .NET na linuksie raczej nie ma...
w ogóle co to za słowotwór "intellisense"
Z Microsoftu :-P
Sam Windows i MS Office są produktami bardzo dobrymi i odpowiednimi dla olbrzymiej liczby użytkowników.
To drugie jak najbardziej, to pierwsze niekoniecznie. Windows jest systemem łatwym, dla dużej liczby uzytkowników, ale jezeli chodzi o sama architekture i podejscie Microsoftu do niektorych spraw to juz tak idealnie nie jest - kto zna temat ten wie o czym mowie. No ale to temat na inna dyskusje.
Co do meritum sprawy - wypada sie tylko zgodzic z przedmówcami - jezeli ktos ma odpowiednio "wycwiczony" umysl, umie czytac i rozumiec dokumentacje (po angielsku oczywiscie), rorzumie ogólne idee programowania obiektowego itd... to nauczenie sie składni jakiegokolwiek języka nie powinno byc zadnym problemem, podobnie kazdy framework ma dokumentacje, w ktorej jest wszystko.
genobis - 26-08-2008 09:35
(...) wg mnie idea IDE jest troche inna - to jest Zintegrowanie ÂŚrodowisko Programistyczne, czyli: instalujesz, tworzysz nowy projekt, kompilujesz i dziala - jest od razu wszystko czego potrzeba do pracy.
Przede wszystkim chodzi o zintegrowanie kilku różnych narzędzi w jednym.
Co do frameworkow jeszcze - javy nie znam bo nigdy w javie nic nie pisalem
No to uwierz na słowo - jest ich bardzo wiele i wiele jest bardzo wysokiej jakości (nie ma tutaj podziału na systemy operacyjne). Dla innych języków programowania, szczególnie skryptowych (python, ruby, php, itd.) też sytuacja bardzo dobrze wygląda.
(...)ale do C++ znam tylko 2 dobre biblioteki (...) Jednak niczego dorównującego .NET na linuksie raczej nie ma...
.NET to nie framework, ani nie biblioteka - to środowisko uruchomieniowe, takie jak Java Virtual Machine (w dużym stopniu zresztą na tamtym wzorowane). I pisze się pod to nie w C++, a w - między innymi - C#. Jak najbardziej ma pod *niksy swój odpowiednik - jest to Mono. Osobiście tego środowiska trochę nie trawię, w sumie kwestia gustu. Tak czy inaczej, alternatywą dla niego jest także, po prostu, wolna Java.
w ogóle co to za słowotwór "intellisense"
Z Microsoftu :-P
Tyle wiem - ale uwierz mi, autouzupełnianie kodu było na długo, zanim MS je nazwał po swojemu :P
Sam Windows i MS Office są produktami bardzo dobrymi i odpowiednimi dla olbrzymiej liczby użytkowników.
To drugie jak najbardziej, to pierwsze niekoniecznie. Windows jest systemem łatwym, dla dużej liczby uzytkowników, ale jezeli chodzi o sama architekture i podejscie Microsoftu do niektorych spraw to juz tak idealnie nie jest - kto zna temat ten wie o czym mowie. No ale to temat na inna dyskusje.
Myślę, że większość osób tutaj w jakimś stopniu zna temat i prawie wszyscy mieli jakieś doświadczenia z Windows. Wiem co masz na myśli, jednak Win ma również wiele na swoją obronę - tym niemniej masz rację, to temat-rzeka, którego nie warto tu rozpoczynać.
fsl - 26-08-2008 10:16
nieprawda ;) .NET jest framework'iem który zawiera środowisko uruchomieniowe, biblioteki, i potrzebne narzędzia.
hmt - 26-08-2008 11:41
Witam!
Interesuję się programowaniem (technologiami dotyczącymi programowania) od wielu lat. Myślę że z tej dyskusji powinno zostać wydzielone programowanie "webowe" ponieważ jest tak naprawdę wieloplatformowe czy tego chcemy czy nie. Pisząc aplikację internetową w Windows często uruchamiamy ją na serwerze opartym na Linuksie. Nie dotyczy to tylko PHP ale ostatnio coraz szerszej gamy technologii związanych z językami programowania takimi jak java, ruby, python itp. Osobiście staram się programować na domowym serwerze produkcyjnym z uruchomiona sambą. Dzięki takiemu rozwiązaniu mam dostęp do moich projektów z każdego komputera w domu niezależnie od tego czy jest to Windows czy Linux.
Kilka osób w tym wątku wspomniało o tym że aby nauczyć się programowania należy przykładać wagę do spraw niezależnych od języka programowania to znaczy logika, algorytmy, matematyka, wzorce projektowe itp. i z tym się zgadzam chociaż trudno przecenić wartości samego wytwarzania kodu. Moim zdaniem sam proces programowania w dzisiejszych czasach wiąże się z coraz mniejszą przyjemnością. Kiedyś programista poznał podstawy języka i mógł tworzyć oprogramowanie nie ucząc się kolejnych nowych bibliotek, IDE, frameworków itp rozwiązań które w dzisiejszych czasach powstają jak grzyby po deszczu. Mam na myśli to że programiści jeszcze ok 10 lat temu byli skazani w dużej mierze na własną kreatywność a nie na dobrodziejstwa nowoczesnych technologii programowania. Niestety w obecnych czasach aby móc utrzymywać się z pracy programisty trzeba być na bieżąco z wszystkimi nowinkami a co za tym idzie połowę czasu przeznaczać na poznawanie tego co już ktoś napisał a nie na pisanie własnego kodu. Oczywiście mowa tu o zawodowych programistach a nie o tych ludziach dla których programowanie jest głównie pasją i którzy mogą sobie pozwolić na to aby programować tylko i wyłącznie dla własnej przyjemności.
Jeżeli mam coś doradzić autorowi tego wątku to moim zdaniem jeżeli człowiek chce w dzisiejszych czasach pracować jako programista i być pewnym tego że znajdzie jakąś pracę to niestety jest skazany na dwie coraz bardziej znaczące technologie to znaczy Java lub technologie MS. Oczywiście programiści takich języków jak Python czy coraz bardziej popularny Ruby lub głównie webowe PHP także znajdą pracę, jednak nie jest ona już tak dobrze płatna i pewna. Niestety większość zagranicznych koncernów w których da się dobrze zarobić stawia na sprawdzone technologie a co za tym idzie technologie wspierane przez takie koncerny jak Sun czy Microsoft i stąd te różnice w zarobkach.
Jeżeli chodzi o sam związek programowanie komercyjne - Linux to oczywiście warto zastanowić się nad takim warsztatem pracy. Jeśli zakładasz pisanie programów w Javie to Linux wydaje się dobrym rozwiązaniem jako platforma programistyczna. Nie trzeba odwoływać się tutaj do osławionego Eclipsa jako głównego IDE i konkurenta produktów spod znaku MS. Jest przecież wspierany przez Suna NetBeans o którym już ktoś wcześniej wspomniał. W wątku tym pojawiło się także wiele "mniejszych" technologii które są technologiami bardzo uniwersalnymi takie jak np wxWidgets które współpracuje z wieloma językami programowania i systemami operacyjnymi.
Podsumowując można stwierdzić że Linux nadaje się do programowania tak samo dobrze jak Windows. Myślę że jako warsztat programisty sprawuje się lepiej od Windowsa który jak dla mnie jest dużo mniej przejrzysty. Oczywiście tutaj problemem jest .NET w którym programowanie pod Linuksem, chociaż powoli możliwe, nie będzie jednak aż tak efektywne jak pod Windows.
Chciałbym podkreślić że moje zdanie jest obiektywne, używam w domu zarówno Windowsa jak i Linuksa i nie mam żadnej fobii która odstraszałaby mnie od któregoś z tych systemów operacyjnych.
Pozdrawiam
giaur - 26-08-2008 14:14
pisze się pod to nie w C++, a w - między innymi - C#.
No tak, m.in. w C#, ale tez m.in. w C++, Visual Basic a nawet Pascal. Polecam sie dokształcić.
Jak najbardziej ma pod *niksy swój odpowiednik - jest to Mono
No naprawde, badzmy powazni - tego juz nie skomentuje bo nie ma co...
.NET to nie framework, ani nie biblioteka - to środowisko uruchomieniowe
Tutaj nic nie dodaje, bo kolega fsl juz wyjasnil :-)
fsl - 26-08-2008 14:33
pisze się pod to nie w C++, a w - między innymi - C#.
No tak, m.in. w C#, ale tez m.in. w C++, Visual Basic a nawet Pascal. Polecam sie dokształcić. nieprawda ;) nie w C++ tylko C++/CLI, nie w VB tylko VB.NET i nie w Pascal'u tylko ... więcej informacji: http://en.wikipedia.org/wiki/Microsoft_.NET_Languages
genobis - 26-08-2008 15:06
Cóż, dyskusja zeszła na temat .NET (niedobrze :P ), który rzeczywiście nawet ma słowo "framework" w nazwie. Nieporozumienie wzięło się z tego, że to pojęcie (skądinąd bardzo szerokie) rozumiałem trochę inaczej. Tak czy inaczej, to nie są dokładnie te same języki, z których się korzysta gdzie indziej.
Jak najbardziej ma pod *niksy swój odpowiednik - jest to Mono
No naprawde, badzmy powazni - tego juz nie skomentuje bo nie ma co...
Myślę, że przesadzasz. Nawet jeśli to nie to, co oryginał, to jednak równie dobrze mógłbyś powiedzieć to samo o np. o wine. A Mono jest znacznie (znacznie!) bliższe specyfikacji .NET, niż wine - WinAPI.
giaur - 26-08-2008 17:08
Ale C++/Cli to ciagle c++, VB.NET to ciagle VB itd :) Chociaz oczywiscie masz racje
Dzis chcialem nawet wyprobowac mono, ale w Debianie ma to tak skopane zaleznosci ze nei da sie tego zainstalowac w żadsn sposob (mowa o winforms)
Theq - 26-08-2008 17:12
Owszem, tylko wg mnie idea IDE jest troche inna - to jest Zintegrowanie ÂŚrodowisko Programistyczne, czyli: instalujesz, tworzysz nowy projekt, kompilujesz i dziala - jest od razu wszystko czego potrzeba do pracy. Po prostu nie ma czasu, zeby kazdy z 5 osobowego zespołu poswiecal kilka dni na "dostosowanie ide do siebie" po to, zeby w ogole mozna bylo zaczac prace.
No prosze cie, czy kazdy z tego 5-cio osobowego zespolu zaczal programowac wczoraj i pierwszy raz widzi IDE na oczy? Uwazasz, ze przewaga VS jest to, ze tworzysz nowy projekt, kompilujesz i dziala to? Jak juz wiesz co i jak (w IDE), to konfiguracja zajmuje chwile. Pozatym czy ty nie konfigurujesz VS, masz wszystko out of the box, dopasowane pod twoja firme? Bo ja przez "dopasowywanie ide" mialem na mysli np dodanie obslugi svn, integracja z traciem, dopasowanie sie do coding standard firmy i inne bzdety. Co do C::B i wxWidgets nie bede sie wypowiadal bo przejrzalem to w kilka minut i podziekowalem. Mi integracja QT z Eclipse zajela 2 minuty (na linuksie) i ogranicza to sie do instalacji wtyczki od trolltecha i instalacji z repo plikow -dev.
Jednak niczego dorównującego .NET na linuksie raczej nie ma...
Odpowiednikiem .NET jest Java i nie mowie o jezyku. Ale rozumiem juz czemu masz takie podejscie do programowania pod L. Rzeczywiscie dla programistow .NET, linuks nie ma wiele do zaoferowania, bo mono (jeszcze?) do uzytku nadaje sie tak srednio ;) I sam bym wtedy wybral windowsa i VS.
fsl - 27-08-2008 01:22
Ale C++/Cli to ciagle c++, VB.NET to ciagle VB itd :) Chociaz oczywiscie masz racje
Zbiór rozszerzeń i zmian jakie dopasowują standardowy C++ do microsoftowego CLI (Common Language Infrastructure), a dotyczą one m.in.: interfejsów, właściwości (.NET'owych properties), wskaźników, dziedziczenia... i nie tylko - czyni ten język innym. Te zmiany są widoczne z punktu widzenia programisty wg mnie i to jest normalne - musi być inny.
Ale rzeczywiście dosyć już o .NET - .NET jest chyba najlepszym wyborem razem z C# do programowania aplikacji dla Windows - w końcu zostały do tego stworzone, chociaż java jest solidną alternatywą i pewnie gdyby nie java .NET by nie powstał. Java miała cały cool stuff przed .NET'em i nadal wiedzie prym jako platforma produkcyjna.
Do autora wątku: Chyba wszystkie liczące się firmy produkujące oprogramowanie (poza Microsoft oczywiście) liczą się z systemami operacyjnymi z rodziny Linux - tak więc... Chyba jest jakaś przyszłość dla programistów nie piszących aplikacji okienkowych dla Windows. Dodatkowo wspomniany już internet gdzie migrują aplikacje desktopowe - działają na *niksach (w większości).
mikolajs - 27-08-2008 11:58
Pisząc aplikację pod .NET mogłem programować w C++/CLI, ale pomimo, że znam dobrze C++ wybrałem C#. Wydaje mi się, że właśnie C# ma bardziej podobną składnie do C++ niż C++/CLI, i jest znacznie czytelniejszy. Natomiast w mono lepiej nie używać winApi tylko gtk#, w końcu trudno oczekiwać dobrej wersji GPL czegoś co Microsoft ukrywa. W mojej opini naprawdę warto pisać aplikacje wieloplatformowe i używać narzędzi, które to umożliwiają.
pietrzuch - 29-08-2008 21:28
Ja uważam, że jednak nie ważne jak patrząc, ale obiektywnie w Windowsie programista ma nieco bardziej komfortowo, jak już kolega mówił, są narzędzia takie jak Visual C++, czy produkty Borlanda. Jako młody programista raczej nie znający dobrze tych produktów uważam, że programowanie obiektowe, nawet z poziomu zwykłej Anjuty czy Dev-c++ jest o wiele wygodniejsze niż zwykłe, a co dopiero w tak potężnych narzędziach jak one.
Co do zarobku to zarówno w Linuksie jak i w Windowsie moim zdaniem coś się znajdzie. Fakt w Windowsie więcej ofert, ale jak ktoś będzie szukał to znajdzie i dla Linuksa. W ogóle moim zdaniem potrzebna jest umiejętność programowania pod wieloma systemami.
PS Min. dlatego, że właśnie WinApi jest nie przenośne to ja bym wybrał OpenGL. ;-)
genobis - 29-08-2008 22:35
Ja uważam, że jednak nie ważne jak patrząc, ale obiektywnie w Windowsie programista ma nieco bardziej komfortowo, jak już kolega mówił, są narzędzia takie jak Visual C++, czy produkty Borlanda.
Pisaliśmy też, że pod Linuksem jest wiele innych narzędzi. Akurat taki mi się przykład nasunął: http://blog.mocna-kawa.com/2008/06/1...e-bede-plakal/ (żeby było śmieszne, autor migruje na MacOS X, bo Linuksa z różnych powodów nie trawi; ale jednak najwyraźniej mu brakowało pod Windows różnych jego funkcjonalności).
Jako młody programista raczej nie znający dobrze tych produktów uważam, że programowanie obiektowe, nawet z poziomu zwykłej Anjuty czy Dev-c++ jest o wiele wygodniejsze niż zwykłe, a co dopiero w tak potężnych narzędziach jak one.
O programowaniu zorientowanym obiektowo można powiedzieć wiele dobrych rzeczy, ale akurat z przymiotnikami typu "wygodniejsze", itd. byłbym ostrożny. Wszystko zależy od zastosowań. Btw, to "zwykłe" nazywa się proceduralne.
Co do zarobku to zarówno w Linuksie jak i w Windowsie moim zdaniem coś się znajdzie. Fakt w Windowsie więcej ofert, ale jak ktoś będzie szukał to znajdzie i dla Linuksa. W ogóle moim zdaniem potrzebna jest umiejętność programowania pod wieloma systemami.
Piszesz frazesy (to o tym programowaniu pod wieloma systemami), ale jakbyś uważnie czytał wątek i wymieniane przykłady to byś widział, że często podkreślane było, że system operacyjny często ma drugorzędne znaczenie. Bo należy pisać tak, by oprogramowanie było możliwie przenośne.
PS Min. dlatego, że właśnie WinApi jest nie przenośne to ja bym wybrał OpenGL. ;-)
OpenGL jako zamiennik WinAPI :-P ? Zgaduję, że tam powinno, zamiast WinAPI, pisać coś o DirectX ;-) ? Na temat multimediów i gier nie rozmawialiśmy (tutaj, siłą rzeczy, Linux jest w nieco gorszym położeniu).
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|