ďťż

Ładny brzuch

Jakoś wszystcy narzekają, że wersji Personal środowisku Delphi nie można wykorzystywać do tworzenia aplikacji komercyjnych. A szkoda. Jest takie DARMOWE środowisko open source o nazwie Lazarus bazujące na FPC (FreePascal Compiler). Chociaż to dopiero wersja 0.9.16, ma już większość funkcji, w tym konwersję projektów i komponentów Delphi oraz własną bibliotekę LCL (Lazarus Component Library) - odpowiednik VCL z Delphi. Sam program jest dostępny jako GPL, ale biblioteki są licencjonowane zmodyfikowaną wersją licencji LGPL, co umożliwia użycie Lazarusa w projektach o kodzie zamkniętym - a więc komercyjnych! Bardzo dobrze by było, jeśli w Ekspercie pojawiłaby się chociaż dwuzdaniowa notka o tym, iż takie coś istnieje. Kod stworzony w Lazarusie może być skompilowany na wszystkich platformach na które Lazarus jest dostępny. A jest dostępny na wszystkie platformy, na które jest dostępny FPC (poza AmigaOS, ale trwają nad tym prace :D ).



Ja nie narzekam, że nie można. I chyba niewiele osób na to narzeka. Czemu? Zajrzyj tutaj .
Jakoś tak dziwnie jest napisane, że jednak można...
Użytkownik chodnik edytował ten post 04 wrzesień 2006, 15:47

Ja nie narzekam, że nie można. I chyba niewiele osób na to narzeka. Czemu? Zajrzyj tutaj .
Jakoś tak dziwnie jest napisane, że jednak można...


Przeczytałeś, ale nie wszystko. Szczególnie polecam ostatnie 2 zdania, to może skumasz dalczego (oprócz względów licencyjnych) w ogóle o tym piszę.

Po za tym open source = możesz dowolnie, według swoich potrzeb zmieniać program, ale jak chcesz publikować, to musisz udostępnić kod źródłowy (nie dotyczy zmodyfikowanego LGPL z biblotek Lazarusa), żeby inni mogli zobaczyć co i jak zmieniłeś i dalej zmieniać. W efekcie program rozwija się szybciej, bo każdy programista może dorzucić swoje "trzy grosze" do efektu końcowego - czyli w tym wypadku Lazarusa.
Użytkownik Rave edytował ten post 04 wrzesień 2006, 16:02
W pierwszym zdaniu twojego pierwszego postu jest nieprawda, pewnie o tym nie wiedziałeś, więc zostałeś poinformowany. O zaletach OpenSource wiem, bo sam korzystam z wxWidgets. Lazarus nie jest jedyny. A z Delphi nie jest tak fatalnie, jakoś większość postów na tym forum dotyczy akurat tego języka. I jest jeszcze jedna rzecz: firmy jakoś wolą zapłacić i opierać się na oprogramowaniu wysokiej jakości. Tego akurat nie do końca rozumiem, ale uwierz mi, że tak jest, wystarczy przejrzeć ogłoszenia o pracę dla programistów.



Jeśli chodzi Ci tylko o zastąpienie Delphi, żeby tworzyć programy komercyjne, to instalujesz wersję Delphi 2005 Personal i możesz już pisane w nim programy sprzedawać :) Jeśli chodzi Ci zaś o wieloplatformowość (i również wykorzystanie komercyjne), to i tak nic nie zastąpi Javy :P :)
No, chyba że chodzi tylko o rozreklamowanie Lazarusa :)

Tak, w Delphi możesz tworzyć programy komercyjne. Ale, załóżmy przez chwilę, że chcesz zrobić jeszcze wersję dla Linuksa. Tworzyć od nowa w Kyliksie? Strata czasu. Konwertować? Biblioteka komponentów Kyliksa jest niestety jeszcze mniejsza od VCL z Delphi. A jeśli zrobisz w Lazarusie... Wystarczy że otworzysz projekt zrobiony w Windows i klikniesz Kompiluj. To jest takie proste! Zrobisz kod raz, kompilujesz pod różnymi OS'ami i masz wersje dla różnych systemów! Przypomnijmy też, że Lazarus ma wersję dla BeOS i MacOsX, więc przewyższa tym Delphi i Kylix, bo nie słyszałem o narzędziach Borlanda do w/w systemów.

Hmmm... To jest takie proste! :) Przyznam się bez bicia, że z Lazarusem kontakt miałem raczej przelotny (po tym, jak zobaczyłem, ile zajmuje skompilowany w nim pusty projekt, jakoś odeszła mnie chęć do eksperymentów ;)) Programuję jednak "troszkę", w Delphi, C# i Javie, i z lekkim niedowierzaniem przyjmuję wszelkie zapewnienia, że tworzenie wieloplatformowych (i złożonych!) aplikacji sprowadza się tylko do prostego przekompilowania. A jeśli użyłeś jakiegoś - nawet małego - komponentu, którego nie ma na innej platformie? A co z systemem plikowym (np. wszystkie systemy uniksowe rozróżniają wielkość liter w nazwach plików, Windows nie)? Przyznam, że do mnie osobiście bardziej przemawia właśnie Java czy .NET (i Mono) niż Lazarus.
Ale generalnie nie neguję :) Myślałem tylko, że bardziej zależy Ci na możliwości użycia komercyjnego (80% Twojego pierwszego posta :))

Jeśli nie ma komponentu, to przekompilujesz też komponent :D. A co do innych systemów plików, to polecam pisanie nazw małymi literami - wtedy na pewno się skompilują.


Tak, w Delphi możesz tworzyć programy komercyjne. Ale, załóżmy przez chwilę, że chcesz zrobić jeszcze wersję dla Linuksa. Tworzyć od nowa w Kyliksie? Strata czasu. Konwertować? Biblioteka komponentów Kyliksa jest niestety jeszcze mniejsza od VCL z Delphi. A jeśli zrobisz w Lazarusie... Wystarczy że otworzysz projekt zrobiony w Windows i klikniesz Kompiluj. To jest takie proste! Zrobisz kod raz, kompilujesz pod różnymi OS'ami i masz wersje dla różnych systemów! I tu masz zonka. Nie wiem jak Ty, ale ja korzystam z funkcji udostepnionych przez system, a niedostepnych z poziomu VCL, w wyniku czego moze i uda Ci sie skompilowac program na linuksie, ale przy pierwszym wywolaniu danej funkcji sie program wylozy, bo jej po prostu nie znajdzie.
Mam tu na mysli winapi, ktore daje duze mozliwosci, mimo iz jest strasznie zacofane i prymitywne /jak z reszta system ktory je udostepnia... ;) / i niestety na linuksie go nie ma.

Jezeli bedziesz pisal z wykorzystaniem wieloplatformowej biblioteki /np. gtk/ to sie zgodze - takie cos przejdzie, ale nie z winapi.

Niestety delikatnie, nawet bardzo delikatnie mówiąc winapi jest do d***. Ale jeśli załóżmy musisz go użyć, to jest takie coś jak Wine. Po prostu ściągasz źródła, odpowiednio do potrzeb aplikacji zmieniasz pliki nagłówkowe, przepuszczasz przez h2pas (to narzędzie jest dostępne razem z fpc, a na nim lazarus jest oparty) i masz gotowy modułek, który dodajesz do sekcji uses swojej aplikacji. Oczywiście nie można zapomnieć o tym, aby w readme wspomnieć o tym, że program zawiera kod Wine. I takie coś możesz już zrobić tworząc aplikację w win32 - po prostu aplikacja nie będzie się odwoływała do kodu bezpośrednio z winapi, ale będzie wykonywała wersję Wine.

W kwestii wieloplatformowości: pewnie, że możesz sobie dopomóc Wine. Ale to w Linuksie - a co z BeOSem i MaxOsXem? :P Przecież to tutaj Lazarus ma przewagę nad Kyliksem? :D Pomijając już oczywiście żmudne w przypadku dużych programów tropienie wystąpień odwołań do WinAPI :)
Poza tym sugestia, jakoby używać tylko małych liter, też jest nietrafiona - bo w końcu DLACZEGO niby? Ja wiem - jako programista - że mi tak będzie wygodniej, ale co z użytkownikami, którzy sobie pozapisują jakieś ustawienia/pliki/cokolwiek w wersji Win, a później chcą beztrosko przenieść to do wersji "pod Linuksa"? A co z ustawieniami w Rejestrze? (pewnie, można Rejestru nie używać)...
Zmierzam do tego, że jeśli ktoś POWAŻNIE myśli o wieloplatformowości, to musi z taką myślą zaprojektować program OD PODSTAW. I go od PODSTAW napisać. Takie "przekompilowanie" może się i sprawdzi w przypadku prostych programików, ale dla tych bardziej złożonych więcej będzie dochodzenia "a dlaczego jeszcze to mi nie działa?" - prościej całość kodu z Windy "puścić" na Wine :) W tym właśnie momencie widzę przewagę Javy nad innymi językami "wspólnymi" - po prostu prościej się robi takie rzeczy :) Wystarczy mieć VM i API dla jakiegoś urządzenia/systemu i już. Pliki otwiera się tak samo, tak samo łączy z bazami danych, korzysta z SWT albo SWING (jeśli są udostępnione na daną platformę). Pewnie, że Java też nie jest ideałem, ale bliżej chyba jej do tego miana niż Lazarusowi ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •