Jak dojrzały jest FreeBASIC? [Zamknięte]

10

Mój przyjaciel rozważa użycie FreeBASIC w krytycznym środowisku produkcyjnym. Obecnie używają GWBasic i chcą łagodnie przejść na bardziej nowoczesne języki. Martwię się tylko, że w oprogramowaniu mogą nie zostać wykryte błędy. Widzę, że ich numer wersji to 0.22.0, co wskazuje, że nie jest jeszcze całkiem dojrzały. Przeczytałem również dyskusję, nie mogąc jednak zakończyć. Również na ich stronach Sourceforge nic nie wskazuje, czy jest to Alpha czy Beta (co zresztą nie jest bardzo dobrym wskaźnikiem). Czy ktoś ma własne doświadczenie na temat dojrzałości, pomysły na ocenę dojrzałości lub zna firmy korzystające z FreeBASIC w krytycznym środowisku produkcyjnym?

David
źródło
23
Jeśli używają GWBasic, coś jest poprawą.
Craig,
1
Fora FreeBASIC wydają się lepszym miejscem do zadawania tego pytania.
Matt Ellen
2
@David Czy mają środowisko testowe? Może warto uruchomić jeden i zatrudnić jako konsultant jednego z deweloperów projektu, aby mógł naprawić błędy znalezione w trakcie testowania.
Vitor Py
4
Podejrzewam, że przejście z GWBasic na inny dialekt BASIC nie będzie tak „miękkie”, jak myślisz. Prawo Hofstadtera dotyczy zwłaszcza przepisywania.
Rein Henrichs,
1
Numery wersji są bardzo specyficzne dla projektu. W niektórych projektach główna cyfra jest zarezerwowana na coś wyjątkowego i po prostu poprawia wersje drobne i mikro.
Lars Viklund,

Odpowiedzi:

8

Mam nadzieję, że nie jest za późno, aby wykopać stary wątek.

Używam FreeBASIC w środowisku przemysłowym od ponad 5 lat i przekonałem się, że jest solidny. W rzeczywistości działał bardzo dobrze około 0,1, z rosnącą kompatybilnością QuickBASIC, i powoli wyrósł, aby przekroczyć te korzenie i stał się bardziej „poważny”, ale można powiedzieć, że działa w trybie prawie 100% kompatybilnym z QB. W przypadku dość dużych wydań liczba wersji rośnie tylko o 0,01.

Sugeruję, aby twój przyjaciel zabrał GWBASIC do MS QuickBASIC, co powinno być dość łatwe (zrobiłem to już wcześniej, czy nie jest zaprojektowane dla 100% kompatybilności?). FreeBASIC daje wtedy opcję „XXI wieku”, która może działać jako aplikacja 32-bitowa, jeśli ktoś poczuje taką potrzebę. W przeciwnym razie w systemie Windows 7 itp. Utkniesz przy użyciu maszyny wirtualnej z systemem DOS lub coś takiego.

Antony
źródło
10

PureBasic jest prawdopodobnie najlepszym wyborem zamiast FreeBASIC, ale gdybym był tobą, prawdopodobnie zmieniłbym się na bardziej nowoczesny i solidny język, taki jak C # lub Python.

Gary Willoughby
źródło
3

Imho najlepszym BASICEM do aktualizacji z GWBASIC jest PowerBasic (www.powerbasic.com). Wielu już to zrobiło, więc w społeczności użytkowników Powerbasic jest sporo doświadczenia, jeśli potrzebujesz tam pomocy.

Również Powerbasic jest produktem wysokiej jakości, prawie bez problemów / błędów i aktywnie rozwijanym. To nie jest darmowe (199 USD), ale warte każdego grosza.

FYI: Nie jestem z nimi związany i sam korzystam z VB.NET (z powodów zawodowych; inaczej byłby to Powerbasic ...).


źródło
3

Powerbasic jest dość dojrzały i serdecznie go polecam, szczególnie jeśli ważna jest dla ciebie niezawodność i świetne wsparcie. Ja osobiście już go nie używam, ponieważ tak naprawdę nie jest przeznaczony do programowania gier - do czego używam (i polecam) wieloplatformowego BlitzMax.

To powiedziawszy, Freebasic nie powinien być zbyt dużą przeszkodą, jeśli pochodzisz z GWBasic, i wydaje się być dość stabilny. Obsługa dokumentacji i forum jest również lepsza niż średnia.

Mimo to, gdybym był firmą (w przeciwieństwie do osoby prywatnej) szukającą rozwiązania, które będzie tam dostępne i będzie wspierane w dającej się przewidzieć przyszłości, wybrałbym coś w rodzaju Powerbasic. tutaj jest program, który może konwertować QBasic na Powerbasic: http://www.powerbasic.com/support/downloads/files/QB2PBv2.zip

Mam nadzieję że to pomoże! Russell

Russell
źródło
3

Są to następujące dialekty podstawowe, które są dobre zarówno jako kompilator, jak i skrypt do osadzenia:

1) Gambas

Są to następujące dialekty podstawowe, które są dobre tylko jako kompilator, ale mogą osadzać inne skrypty:

2) Jabaco

3) podstawowy

4) freebasic

5) chipmunkbasic

Są to następujące wbudowalne dialekty podstawowe, które są dobre i mogą być osadzone w innych podstawowych dialektach w zależności od frameworka:

6) skryptowy

7) maven-sb4j

8) ajbasic

Wszystkie te mogą być również używane do tworzenia aplikacji GUI, które różnią się między sobą, narzędzi do łączenia baz danych, a w obszarze aplikacji do osadzania (stron serwera WWW), skryptbasic i gambas-gbs3 już tam są, podczas gdy jeśli możesz uzyskać FB-curl i fb-simplewebserver i zintegruj je z frameworkiem freebasic, a także ze stronami freebasic-server (jeśli ich tam nie ma, być może będziesz musiał pobrać i skopiować i wkleić pliki biblioteki i nagłówka w bibliotece lib oraz dołączyć odpowiednio katalog freebasic). Nawet jabaco może osadzić maven-sb4j, a objectbasic i chipmunkbasic mogą osadzić odpowiednio applecript i scriptbasic. Prawdopodobnie mają one rozwiązanie dla większości wymagań.

Jeśli jesteś bardzo szczególny w kompatybilności z gwbasic, wybierz bwbasic (gwbasic ulepszony dla Freebsd i Linux), ale nie sądzę, że jest jakaś różnica między niektórymi innymi.

Jednak dla grafiki z bwbasic musisz walczyć z opcjami opartymi na x11 lub poczekać, aż doda obsługę tk, lisa i innych dobrze znanych zestawów narzędzi.

Jeśli chcesz poszukać:

Solidne środowisko programistyczne podobne do VB + podstawowe strony serwera, a następnie wybierz gambas lub jabaco z maven-sb4j.

Solidny interpreter obsługiwany przez cienki, ale dobry ide: freebasic, a jeśli możesz uzyskać fb-curl i fb-simplewebserver i zintegrować je z frameworkiem freebasic, to także strony freebasic-server.

Solidny silnik WWW dla podstawowych stron serwera, następnie skryptowych i cienkościennych.

Wszystkie są więc solidne i mogą stać się użyteczne przynajmniej po dodaniu kilku modułów.

Pożyczyłem kilka drobnych funkcji z python / perl / ruby: scriptbasic (a także yabasic3)

Prosta i bardzo standardowa składnia: w przyszłości będzie obasic (openbasic), obecnie freebasic i scriptbasic to dwa różne smaki lub tradycyjny podstawowy, podczas gdy gambas i jabaco to różnorodne dialekty vb6.

kaushikkg
źródło
2

Jaki dokładnie jest twój przypadek użycia? A raczej przypadek użycia twojego przyjaciela. Kierowałbym ich w kierunku Pythona (lub dowolnego z innych powszechnie używanych, ale także prostych języków), ale być może istnieje jakiś konkretny powód, dla którego powinni używać dialektu BASIC.

Chętnie bawię się różnymi językami w osobistych projektach, ale do krytycznych celów produkcyjnych zasadniczo trzymam się języków, które są powszechnie znane, wspierane i bardzo przetestowane w walce.

jhocking
źródło
3
To nie jest odpowiedź, ale bardziej nadaje się na komentarz. Przypadek użycia polega na tym, że jest on wykorzystywany do krytycznego obliczania kosztów materiałowych, kosztów pracy, generowania modelu 3D itp. Obecny program GWbasic ma około 30 000 linii kodu (utworzonych przez jednego programistę), dlatego mniejszy przepisywanie jest preferowane w porównaniu do przechodzenia do Pythona, co wymagałoby pełnego przepisania.
David
5
Nie znam osobiście ani FreeBASIC, ani GWBasic, ale podejrzewam, że nie jest to małe przepisanie. Większość dialektów BASIC, z którymi się spotkałem, jest naprawdę całkiem inna. Pure Basic, Real Basic, Blitz Basic, GL Basic itp. Są one koncepcyjnie bardzo podobne (np. Nie zorientowane obiektowo), ale ich składnia jest zupełnie inna.
jhocking
Kusiło, by głosować za każdym, kto preferuje „ładny” kod nad działającym kodem. Wygląda na to, że mają dużą liczbę wypróbowanych i przetestowanych GWBASIC, są zadowoleni z jego funkcjonalności, chcieliby po prostu przejść do bardziej nowoczesnego języka bez konieczności ponownego pisania lub przeprojektowywania wszystkiego, co jest całkowicie rozsądne. Ponowne napisanie dużego systemu starszego typu jest jednym z najtrudniejszych zadań, jakie możesz kiedykolwiek podjąć!
James Anderson
Przejście na bardziej nowoczesny język bez przepisywania wszystkiego jest rozsądnym pierwszym instynktem, ale w rzeczywistości nie jest praktyczne. Jeśli jedynym powodem przepisania wszystkiego jest uzyskanie „ładnego” kodu, to tak, to ogromna strata czasu, ale to powód, aby nie zmieniać języków. Jeśli jednak naprawdę potrzebujesz zmienić języki (jest to stary wątek, więc nie pamiętam, czy on to zrobił), to zmiana języków prawie zmusza cię do przepisania wszystkiego.
jhocking
0

Potem jest obsługa java-api lub japi dla skryptów, yabasic2 i jabaco, która jest wieloplatformowa.

Ale oczywiście teraz wiele dni dialektów podstawowych ma także inne zestawy narzędzi między platformami, które wkrótce mogą utorować drogę dla aplikacji wysokiej jakości w przyszłości.

kaushikkg
źródło