wtorek, 17 kwietnia 2012

Kontrolki, wtyczki i narzędzia

Real Studio zawsze było narzędziem dość niszowym, postrzeganym raczej jako produkt skierowany do hobbystów, niezależnych konsultantów i małych firm. Dlatego liczba firm produkujących dodatki do Real Studio nie imponowała podobnie jak liczba samych dodatków. Nie znaczy to oczywiście, że nie ma z czego wybierać. Paul Lefebvre opublikował wczoraj odświeżoną listę rozszerzeń do Real Studio: Third Party Products.

niedziela, 15 kwietnia 2012

Błędy podczas uruchamiania aplikacji pod Ubuntu 12.04

Uruchmienie pod Ubuntu 12.04 aplikacji utworzonych w Real Studio (wersja 2011.1) powoduje wyświetlenie w konsoli serii błędów GTK:


piotr@Swallow:~/Dokumenty/Orders Linux$ ./Orders\ Linux
** (Orders Linux:28509): CRITICAL **: os_bar_hide: assertion `OS_IS_BAR (bar)' failed
(Orders Linux:28509): Gtk-CRITICAL **: IA__gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
** (Orders Linux:28509): CRITICAL **: os_bar_set_parent: assertion `OS_IS_BAR (bar)' failed
** (Orders Linux:28509): CRITICAL **: os_bar_hide: assertion `OS_IS_BAR (bar)' failed
(Orders Linux:28509): Gtk-CRITICAL **: IA__gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
** (Orders Linux:28509): CRITICAL **: os_bar_set_parent: assertion `OS_IS_BAR (bar)' failed
** (Orders Linux:28509): CRITICAL **: os_bar_hide: assertion `OS_IS_BAR (bar)' failed
(Orders Linux:28509): Gtk-CRITICAL **: IA__gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
** (Orders Linux:28509): CRITICAL **: os_bar_set_parent: assertion `OS_IS_BAR (bar)' failed


Problem powoduje nowa (występująca od Ubuntu 11.10?) obsługa scrollbara w Ubuntu z Unity. Program uruchomiony w taki sposób:

piotr@Swallow:~/Dokumenty/myapp$ LIBOVERLAY_SCROLLBAR=0 ./aplikacja

uruchamia się bez błędów. Szybki test pokazał, że efekt występuje także w najnowszej wersji Real Studio 2011 r4.3.

piątek, 11 listopada 2011

Nie wiadomo kiedy...

Minęły dwa lata. Szmat czasu, wiele zmian, kilka zdziwień. Po pierwsze Real Software nadal istnieje :-) 


Firma porzuciła serwer bazodanowy REAL Server. Właściwie nie tyle porzuciła co oddała z powrotem autorowi. Obecnie pod nazwą CubeSQL rozwija go Marco Bambini, który nie jest już pracownikiem RS. To w sumie bardzo ciekawy projekt, wersja 3 stanowiskowa jest bezpłatna. Na pewno dobry temat na cały osobny artykuł.


Zrezygnowano całkowicie z nazwy REALbasic jako nazwy produktu, wszystkie wersje nazywają się obecnie Real Studio: Personal, Professional, Enterprise i Web.


Dużą nowością jest właśnie wersja Web (zwana często w skrócie WE). To system tworzenia aplikacji internetowych (nie stron www). Nie jest wprost kompatybilny z dekstopowym Real Studio, nie da się po prostu zapisać programu jako wersję Web. Widoczne jest, że Real Software wiąże z [WE] ogromne nadzieje, wystarczy spojrzeć na stronę firmy.  


Po długiej przerwie, w przyszłym roku odbędzie się konferencja Real World 2012. Czas: koniec maja, miejsce: Orlando na Florydzie. Dokładny program nie jest jeszcze znany. Tymczasem zaktywizowała się europejska społeczność programistów Real Studio. W ciągu kilku miesięcy odbyło się parę konferencji m.in Real Studio Database Days we Frankfurcie.


Historycznym i ważnym dla wszystkich programistów Mac OSX osiągnięciem będzie wprowadzenie stabilnej obsługi Cocoa, ma to nastąpić już w następnej wersji (2011.4?). Kolejnym krokiem będzie zmiana kompilatora - Real Software pracuje nad wykorzystaniem LLVM. 


Wszystko wskazuje na to, że choć pewnie Real Studio nie podbije świata, to ma trwałe miejsce wśród niezależnych konsultantów, pasjonatów i miłośników programowania w Basic-u.

wtorek, 8 listopada 2011

Nowa wersja, czyli krok w przód, krok w tył

(Bardzo stary wpis o wersji 2009, o którym zapomniałem...)

Tyle było gadania na forum i liście dyskusyjnej o poprawieniu jakości systemu, o tym że stabilna wersja jest dla użytkowników ważniejsza od nowych niedopracowanych bajerów... Real Software postawił tym razem na niedopracowane nowości: edytor raportów oraz Build Automation - mechanizm wspomagający proces budowania aplikacji. Ten drugi tylko w wersji Studio, której nie posiadam, ale Bob Keeney napisał mało optymistyczną ocenę, a chyba można mu wierzyć.

Ciekawiej wygląda nowy mechanizm zgłaszania błędów. Wbrew trendom system Feedback to desktopowy program, który można wywołać z IDE, ale niekoniecznie i nie tylko. Wszystkie błędy (o ile nie zostały oznaczone jako prywatne przez zgłoszeniodawców) są widoczne. Użytkownicy mają wpływ na ocenę ważności błędów, przy czym Ci którzy zapłacili więcej mają większy wpływ ;-) Całość jest wyraźnie lepsza od  obu poprzednich webowych systemów. Program oczywiście napisano w RealStudio. 

sobota, 5 września 2009

REALbasic: plusy, minusy i mroczna przyszłość cz.3

Addendum

Właściwie mógłbym zakończyć temat na części numer dwa, ale czytelnikom należy się jeszcze wyjaśnienie dlaczego używam tak nierównego (plusy i minusy) narzędzia programistycznego jak REALbasic. Przecież powszechnie panuje przekonanie, że czegoś z "basic" w nazwie nie należy tykać nawet spróchniałym kijem...

1. Właśnie dlatego, że to Basic a od wielu (hmm, 20?) lat mam słabość do tego dialektu.
2. Dlatego, że nie ma podobnego rozwiązania w świecie open source (istniejące alternatywy postaram się omówić niedługo).
3. Dlatego, że dobrze nadaje się do szybkiego prototypowania aplikacji, których szkic należy pokazać "na wczoraj".  Poza tym jakość dzieła to nie kwestia pędzla lecz artysty ;-)  
4. No i najważniejsze, programowanie w  REALbasicu nie przeszkadza w znajomości i używaniu innych technologii. Są takie zastosowania w których REALbasic się sprawdza, są i takie do których się specjalnie nie nadaje (o tym też planuję napisać).

A teraz czas wrócić do kodu.

środa, 2 września 2009

REALbasic: plusy, minusy i mroczna przyszłość cz.2

Firma na zakręcie

Kiedy w ubiegłym roku REAL Software opuszczał Mars Saxman, jej główny programista zajmujący się kompilatorem REALbasic, wydawało się, że jest to znaczący zwrot w historii firmy. I to niestety zwrot ku przyszłości malującej się w ciemnych barwach. Obawa o przyszłość tego narzędzia była dosyć czytelna w wypowiedziach programistów na listach dyskusyjnych, forach i realbasicowych blogach. Kilka miesięcy później obawy te pogłębiły się, kiedy firma ogłosiła, że zwalnia dwóch kolejnych pracowników, w tym Aarona Ballmana, głównego programistę i fachowca od konstrukcji kompilatora. Zwolnienia uzasadniano kłopotami finansowymi, spowodowanymi spadkiem przychodów będącym z kolei skutkiem ogólnoświatowego kryzysu. Obawy te usiłował gasić szef firmy Geoff Perlman, tłumacząc że jego firma (po cięciach) znajduje się w stabilnej sytuacji i planowo rozwija swoje główne produkty. Dziś, po kolejnych kilku miesiącach trzeba przyznać, że firma przetrwała i dostarcza kolejne wersje REALbasica i REAL Servera. Niestety nie oznacza to, że wszystkie problemy zostały rozwiązane, wydaje się bowiem na spadek przychodów miał wpływ nie tylko kryzys, ale i spadająca jakość produktów.

Po znaczącej zmianie w 2005 roku kiedy wprowadzono nowe środowisko programisty, wbudowano we framework bazę danych SQLite, kolejne lata nie przynosiły znaczących usprawnień narzędzia. Być może było to efektem polityki częstego wypuszczania wersji (przygotowywane są zwykle 4 wersje rocznie, czyli średnio co 90 dni). Owszem, zapowiadano narzędzia związane z programowaniem www, łatwiejszą obsługę baz danych (mechanizmy typu ORM), jednak żadna z tych zapowiedzi nie została urzeczywistniona. Stałym motywem dyskusji wśród programistów RB stały się błędy i niestabilność programu, problemy z wyciekami pamięci, ze słabszą obsługą niektórych komponentów na platformie Linux (np. HTMLViewer).

Problemy te nie pozostały niezauważone i można było zauważyć zwiększenie nakładów pracy poświęconej na eliminację błędów. Niestety jeszcze wyraźniej zwolnił rozwój nowych funkcjonalności, co z kolei przełożyło się na niezadowolenie użytkowników powstrzymujących się od kupowania subskrypcji. Zdaniem tej części użytkowników błędy powinny być poprawiane bezpłatnie, a jeśli nowe wersje składają się głównie z poprawek do usterek to w rzeczywistości płaci się firmie za naprawianie jej własnych błędów.

Jako błąd postrzegane są przez niektórych programistów wysiłki REAL Software mające na celu wejście na rynek serwerów baz danych. Od paru lat firma sprzedaje własny serwer pod nazwą REAL Server. Wewnętrznie oparty jest on na bazie SQLite a reklamowany jako najlepsze rozwiązanie dla programistów REALbasic, serwer łatwy w instalacji i (prawie) nie wymagający administracji a przy tym szybki, stabilny, dostępny tak jak REALbasic na platformach MacOS X, Windows i Linux. Prawdopodobnie największym problemem stojącym na przeszkodzie w rozpowszechnieniu tego narzędzia jest jego egzotyczność. Trudno wyobrazić sobie by firmy zdecydowały się na porzucenie znanych i sprawdzonych produktów w rodzaju Oracle, MS SQL czy też otwartych baz w rodzaju PosgreSQL na rzecz produkowanego przez małą i słabo znaną firmę komercyjnego serwera. Jako narzędzie skierowane głównie do programistów REALbasic serwer ten ma większe szanse powodzenia, ale znów, problemem jest przekonanie klientów firm produkujących oprogramowanie przy użyciu REALbasic, by swoje dane zawierzyli produktowi REAL Software płacąc od 299 do 599$ za licencję z 12 miesięczną subskrypcją poprawek i nowych wersji. Dlaczego nie użyć otwartego i bezpłatnego PostgreSQL, również obslugiwanego przez REALbasic i obniżyć cenę dla klienta?

Stan aktualny

Ograniczona personalnie i finansowo firma zmodyfikowała swoją politykę cenową. Wprowadzono wersję Studio z myślą o zawodowych programistach, ustalając jej cenę na dość wyśrubowanym poziomie blisko 1000$. Cena wersji Profesional uległa zmiejszeniu, jednocześnie pozbawiono ją pewnych funkcji np. profilera.

Odnosząc się do braków wskazywanych przez użytowników, firma zapowiedziała wprowadzenie jeszcze w tym roku mechanizmu tworzenia raportów. Mechanizm ten w wersji raczej pre-alfa został przypadkowo (o ile to nie przeciek kontrolowany...) udostępniony w wersji 2009.3 i na tej podstawie można stwierdzić, że będzie przypominał narzędzie dostępne w Visual Basicu 6, na początek z dosyć podstawowymi możliwościami. Deklaracja REAL Software o trwających pracach nad konstruktorem raportów postawiła w trudnej sytuacji część niezależnych dostawców komponentów, z których jeden (Einhugur) pracował właśnie nad własnym rozwiązaniem tego rodzaju a inny (On-Target Reports) od paru lat sprzedawał swój mechanizm tworzenia raportów. Obecnie możliwe jest, że przy obecnym niewielkim rynku i konkurencji ze strony twórców REALbasica prace te zostaną porzucone. REAL Software potwierdził kontynuowanie prac nad obsługą Cocoa, możliwość powstania 64-bitowej wersji kompilatora, oraz prace nad elementami specyficznymi dla najdroższej wersji Studio.

Przyszłość narzędzia

Mimo wszystkich problemów i niedociągnieć REALbasic jest całkiem sprawnie działającym narzędziem do tworzenia aplikacji wieloplatformowych. Trudno wskazać konkurencyjny system, w którym tworzenie aplikacji dla różnych systemów operacyjnych byłoby równie szybkie i łatwe. Łatwość jest tu czynikiem decydującym jeśli brać pod uwagę głównych użytkowników REALbasica - programujących amatorów, półprofesjonalistów. Cena wersji Personal przeznaczonej dla takiego właśnie odbiorcy nie jest zaporowa (99$). Gorzej niestety w przypadku wersji droższych, przeznaczonych dla programistów bardziej zawodowych. Problemem nie jest cena, nawet wersji Studio, biorąc pod uwagę że w tym przypadku jest to inwestycja w narzędzie pracy. Należałoby raczej rozważyć czy REALbasic zapewnia takie narzędzie pracy zawodowemu programiście tworzącemu aplikacje typu desktopowego. I tu odpowiedź nie jest jednoznaczna w świetle problemów i braków wspomnianych wcześniej. Z drugiej strony przykłady profesjonalnego oprogramowania napisanego w REALbasicu świadczą o tym, że jednak można. Tylko czy zawodowy programista marzy o narzędziu w którym "jednak można" czy raczej wybierze znane i popularne narzędzie typu C++, Python z bibliotekami Qt lub wxWidgets?

Czy REALbasic przetrwa pokaże pewnie najbliższa przyszłość. Wszystko w rękach inzynierów REAL Software i ich sprawność we wprowadzeniu obsługi Cocoa, raportów i ułatwień w obsłudze baz danych. Tymczasem, jak zwykle z nadzieją na lepsze, będę oczekiwał premiery nowej wersji 2009.4.

Przydatne linki

REAL Software: http://www.realsoftware.com
Oficjalny blog: http://www.realsoftwareblog.com
REAL Software na Twitterze: http://twitter.com/realsoftware
Forum dyskusyjne: http://forums.realsoftware.com/
Archiwum mailowych list dyskusyjnych: http://support.realsoftware.com/listarchives/lists.html
Association of REALbasic Professionals: http://www.arbp.org
Blogi programistów: http://www.rbdevzone.com, http://www.bkeeneybriefs.com
REALbasic Developer: http://www.rbdeveloper.com

c.d.n.

poniedziałek, 31 sierpnia 2009

REALbasic: plusy, minusy i mroczna przyszłość cz.1

REALbasic - cóż to takiego?

REAL Software, firma mieszcząca się w Austin w Teksasie, jest producentem wieloplatformowego kompilatora REALbasic - obiektowej odmiany języka Basic. Narzędzie to ma ponad 10 letnią historię, początkowo ściśle związaną z platformą Apple. Obecnie REALbasic sprzedawany jest w wersji 2009.3, a pracuje pod kontrolą systemu MacOS X, Linux lub Windows. Wersje Professional i Studio posiadają możliwość cross-kompilacji, tzn. kompilator pracując pod dowolnym z obsługiwanych systemów może wygenerować program także dla dwóch pozostałych. Sam język programowania jest w pełni obiektowy, pakiet zawiera łatwe w obsłudze środowisko programisty, dostępne są liczne klasy pozwalające na obsługę baz danych, protokołów sieciowych, plików graficznych, XML itp.

REALbasic jest szczególnie popularny na platformie MacOS X, choć po zakończeniu rozwoju klasycznego kompilatora Visual Basic przez Microsoft, REALbasic zdobył także pewną popularność wśród programistów VB jako alternatywa dla platformy .NET.

Typowym klientem REAL Software jest raczej programujący amator-hobbysta, lub pół-profesjonalista tworzący oprogramowanie dla swojej firmy/organizacji, niż zawodowy programista. Istnieje też grupa konsultantów tworzących rozwiązania na zamówienie, korzystająca z głównych zalet tego narzędzia: wieloplatformowości i szybkości tworzenia kodu. REALbasic słabiej sprawdza się w większych organizacjach przy pracy grupowej, choć trzeba przyznać, że istnieją i takie firmy jak Xsilva, czy BKeeney Software, AltaPoint, Clarity Legal Software, Rage Software.



REALbasic jest produktem komercyjnym, kosztuje zależnie od wersji od 99 do 995$. Po zakupie licencji na użytkowanie programu otrzymuje się także roczną subskrypcję na poprawki i rozszerzenia. REAL Software nie sprzedaje bowiem nowych wersji (ze zniżką dla dotychczasowych licencjobiorców) lecz prawa do pobierania nowych wersji przez określony okres czasu. Po jego zakończeniu można nabyć subskrypcję na kolejne lata lub pozostać przy wersji dotychczasowej. Przyjęty przez firmę sposób produkcji gwarantuje użytkownikom nową wersję co ok. 90 dni. Należy wspomnieć, że istnieje możliwość otrzymania wersji linuksowej kompilatora (w wersji Personal) za darmo, jeśli użytkownik będzie wykorzystywał go tylko do tworzenia otwartego oprogramowania.

Plusy i minusy

Podstawową zaletą REALbasica jest jego wieloplatformowość, łatwość tworzenia aplikacji przeznaczonych dla trzech najpopularniejszych systemów operacyjnych. Łatwość nauki języka ma spore znaczenie dla początkujących programistów. Jest to też powód popularności narzędzia wśród hobbystów, jak rówież stosowania w edukacji. Razem z kompilatorem otrzymujemy VB Migration Assistant - narzędzie do konwersji okien dialogowych z Visual Basica oraz program Lingua wspomagający tworzenie wersji wielojęzycznych i bogatą dokumentację.

Oprócz podręczników dostarczanych przez producenta na rynku obecne są dwie w miarę aktualne pozycje książkowe dotyczące REALbasic: "Beginning REALbasic" (Jerry Lee Ford, wyd. Apress, 2006), oraz "REALbasic Cross-Platform Application Development" (Mark Choate, wyd. Sams, 2006). Od 2002 roku wydawany jest poświęcony REALbasicowi dwumiesięcznik: "REALbasic Developer". Początkowo był drukowany, a od kilku numerów dostępny głównie w wersji elektronicznej lub w formie druku na żądanie.

Wyniki ankiet publikowanych przez REAL Software (jak i przez ARBP, stowarzyszenie zrzeszające programistów REALbasic) wskazują że, głównym zastosowaniem REALbasica są bazy danych. Najprostsza wersja narzędzia (Personal) oferuje dostęp tylko do wbudowanego silnika dla lokalnych baz danych, wersje wyższe (Pro i Studio) dostarczane są z wtyczkami do obsługi baz Oracle, PostgreSQL, MySQL (wersja open source, mimo zapowiedzi brak wtyczki do współpracy z komercyjnymi wersjami MySQL) oraz ODBC. Wbudowany silnik, nazywany REALSQLDatabase opiera się na SQLite. Niestety trzeba przyznać, że oferuje tylko część możliwości SQLite np. nie ma sposobu na zdefinowanie własnego sposobu sortowania. Jest to o tyle dziwne, że rozwojem bazodanowej części REALbasic zajmuje się Marco Bambini, autor wykupionej przez REAL Software wtyczki do obsługi baz SQLite, która takie (i inne zaawansowane) funkcje bazy SQLite udostępniała. Niezrozumiałe są również opóźnienia w aktualizacji wbudowanej bazy SQLite, obecna wersja REALbasic 2009.3 w wersji dla MacOS X posługuje się wersją 3.4.2 SQLite, podczas gdy dostępna jest już wersja 3.6.17.

Wtyczki są wygodnym mechanizmem rozszerzającym możliwości kompilatora i są oferowane także przez niezależnych dostawców. Do najpopularniejszych należą MonkeyBread Software i Einhugur Software. Trzeba jednak przyznać, że liczba firm tworzących rozszerzenia dla REALbasica jest niewielka, zwłaszcza w porównaniu do oferty dla programistów .NET czy Delphi. Oczywiście jest to konsekwencją różnic w popularności tych narzędzi. REAL Software podaje liczbę ponad 100 tys. sprzedanych kopii REALbasica. Trudno jednak powiedzieć ilu klientów aktywnie używa programu i kupuje subskrypcje, czy to tej liczby wliczana jest sprzedaż dużego pakietu licencji dla polskiego Ministerstwa Edukacji (do nauki programowania w gimnazjach z pracowniami komputerowymi wyposażonymi w komputery Apple), oraz czy wliczane są darmowe licencje dla użytkowników linuksowych. Z pewnością rynek dla dostawców niezależnych nie jest szeroki.

W kontekście baz danych dużym problemem REALbasica jest brak wbudowanego narzędzia do tworzenia raportów. Dostępnych rozwiązań firm trzecich (On-Target Reports, RSReport) jest na razie niewiele i nie są one pozbawione wad. Inna bolączka widoczna jest na platformie MacOS, programy napisane w REALbasicu opierają się ciągle na bibliotekach Carbon. Prace nad frameworkiem opartym na Cocoa trwają od paru lat. Ostatnie komunikaty z firmy mówią o ich zakończeniu jeszcze w tym roku, trudno jednak ocenić na ile jest to realne.

Porównując środowisko programisty REALbasic z popularnymi narzędziami na rynku można zauważyć liczne braki. Brak integracji z systemami kontroli wersji, brak refactoringu, nietypowy i raczej słaby mechanizm uzupełniania kodu (autocomplete). REALbasic stara się ułatwiać pracę z kodem początkującym programistom prezentując metody obiektów w drzewku i "przykrywając" część kodu interfejsem, tak że dostępne do edycji są pola nagłówkowe na nazwę metody, parametry, zaś typ (global, public, private) ustalany jest kolorowym graficznym przełącznikiem. Dopiero poniżej przechodzimy do właściwego edytora i edycji zawartości metody. Taki interfejs jest być może faktycznie wygodny dla początkujących użytkowników, lecz dla zawodowych programistów pracujących z różnymi narzędziami fragmentaryczny dostęp do kodu może być uciążliwy.

c.d.n.