Sens programowania w systemie Linux

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

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
Beginner
Posty: 140
Rejestracja: 16 kwietnia 2007, 19:00
Lokalizacja: Legnica

Post autor: Theq »

giaur pisze: 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
giaur pisze: 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.
giaur pisze: 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.
giaur pisze: 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.
giaur pisze: 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
Beginner
Posty: 353
Rejestracja: 21 lipca 2008, 21:59
Lokalizacja: Trzebinia

Post autor: genobis »

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
Member
Posty: 1915
Rejestracja: 25 maja 2007, 22:16

Post autor: giaur »

Theq pisze: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...
genobis pisze:w ogóle co to za słowotwór "intellisense"
Z Microsoftu :-P
genobis pisze: 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
Beginner
Posty: 353
Rejestracja: 21 lipca 2008, 21:59
Lokalizacja: Trzebinia

Post autor: genobis »

giaur pisze:(...) 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.
giaur pisze: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.
giaur pisze:(...)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.
giaur pisze:
genobis pisze: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
giaur pisze:
genobis pisze: 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
Posty: 9
Rejestracja: 05 kwietnia 2008, 17:17

Post autor: fsl »

.NET to nie framework, ani nie biblioteka - to środowisko uruchomieniowe
nieprawda ;) .NET jest framework'iem który zawiera środowisko uruchomieniowe, biblioteki, i potrzebne narzędzia.
hmt
Posty: 13
Rejestracja: 22 sierpnia 2008, 10:35

Post autor: hmt »

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
Member
Posty: 1915
Rejestracja: 25 maja 2007, 22:16

Post autor: giaur »

genobis pisze: 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ć.
genobis pisze: Jak najbardziej ma pod *niksy swój odpowiednik - jest to Mono
No naprawde, badzmy powazni - tego juz nie skomentuje bo nie ma co...
genobis pisze:.NET to nie framework, ani nie biblioteka - to środowisko uruchomieniowe
Tutaj nic nie dodaje, bo kolega fsl juz wyjasnil :-)
fsl
Posty: 9
Rejestracja: 05 kwietnia 2008, 17:17

Post autor: fsl »

giaur pisze:
genobis pisze: 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 ]http://en.wikipedia.org/wiki/Microsoft_.NET_Languages[/url]
genobis
Beginner
Posty: 353
Rejestracja: 21 lipca 2008, 21:59
Lokalizacja: Trzebinia

Post autor: genobis »

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.
giaur pisze:
genobis pisze: 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.
ODPOWIEDZ