Alternativele la Borland

Visual C++ 2008 Express Edition

Este o solutie bogata pentru dezvoltarea aplicatiilor in Windows. Este un mediu stabil, dar este foarte mare, instalarea lui necesitand peste 450 MB. Mediul Visual C++ este creat pentru dezvoltatorii de aplicatii pentru Windows, fiind construit sa satisfaca majoritatea nevoilor unei companii care isi dezvolta produsele in C++.
Compilatorul folosit este mai mult orientat spre backward-compatibility decat spre respectarea standardului. Asadar, se poate intampla ca o functie care exista in acest compilator sa nu existe in standard iar functiile standard sa functioneze putin diferit (de exemplu, rand() returneaza valori intre 0 si 215-1, probabil din vremurile cand intul era pe 2 bytes, rand() ar trbeui sa returneaze o valoare intre 0 si MAX_VAL, iar acum MAX_VAL e 231-1).

Avantaje:

  • Integrarea buna in Windows
  • Suport, updateuri regulate
  • Debugger bun (poate afisa obiecte din STL, chiar si seturi de zeci de mii de elemente).

Dezavantaje:

  • Unele incompatibilitati cu GCC
  • Dimensiunea mare.

Rhide

Este un mediu de dezvoltare pentru DJGPP. DJGPP cuprinde un set de compilatoare si un set de unelte pentru dezvoltarea de programe pentru DOS si Windows. Compilatoarele pentru C si C++ sunt porturi ale GNU C/C++ si respecta in mare parte standardul actual. Compilatorul este pe 32 de biti.
Mediul de dezvoltare Rhide este asemanator ca interfata cu cel din BorlandC 3.1. Acelasi ecran albastru, aceleasi shortcuturi (F2 save, alt-F3 close window, ctrl-F9 ruleaza programul) si are acelasi watch pentru debugare programelor.
In general este un mediu de dezvoltare mai instabil decat BorlandC, pentru ca face mai usor crash si are mici probleme de configurare, cum ar fi inchiderea ferestrelor (trebuie inchise intr-un mod special, sau setata o optiune pentru a scapa de ea) si rezolutia care daca este schimbata fata de cea implicita poate cauza neplaceri la debug cand se face step. Aceste probleme apar numai la instalarea directa si se pot remedia daca se face un pachet care sa aibe grija la stabilitate.

Avantaje

  • Interfata similara cu BorlandC, deci si usurinta in folosire
  • Lipsa nevoii creerii unui proiect in mod imperativ (desi pentru stabilitate e recomandata crearea unui proiect)
  • Debugger simplu de folosit (desi rudimentar).

Dezavantaje

  • Software-ul nu mai este in dezvoltare activa.
  • Foarte instabil. Utilizatorul este nevoit sa invete metode de a evita crashurile.

Verdict

Efortul necesar invatarii metodelor de a evita crashurile este comparabil cu efortul invatarii unui mediu total nou si superior si din punct de vedere al functionalitatii. Propunem ca acest IDE sa fie evitat in solutia de inlocuire a compilatoarelor Borland.

Mingw

MinGW (Minimalist Gnu for Windows) este o colectia gratuita de librarii imbogatind GNU Compliler Collection cu fisiere si librarii specifice Windows. Scopul proiectului initial a fost integrarea facilitatilor oferite de Windows32 in compilatorul gcc si binutils, practic portarea acestora pe Windows. Mare parte din codul MinGW este distribuit sub licenta GPL, insa nu in intregime, detalii gasiti aici.

Comparatie intre MinGW GCC si GNU GCC

Asemanari

  • Uneltele MinGW pot fi folosite de sine statatoare, asemanator cu uneltele echivalente din Linux. Asadar putem compila si depana (cu ajutorul MinGW gcc/g++ si gdb) orice sursa C/C++ care poate fi scrisa cu un editor de texte. Exista mai multe editoare cu syntax highlighting pentru windows: notepad++, vim, jedit.

Deosebiri

  • Pentru a citi/afisa numere pe 64 de biti cu libraria <stdio.h> se foloseste specificatorul de format non-standard "%I64d". Cateva detalii aici.

IDE-uri pentru MinGW

Un IDE (Integrated Development Enviroment) contine:

  • editor performant (syntax highlighting, code completion)
  • debugger
  • utilitar pentru linkarea surselor si librariilor

Exemple de IDE pentru MinGW: Dev-cpp, MinGW Developer Studio, Code::Blocks (pe site-ul MinGW este recomandat Code::Blocks ca IDE).

MinGW Developer Studio

[site-ul nu mai merge de vreo 3 saptamani, arhiva e momentan pe infoarena, o voi pune ulterior la downloads, numai sa mearga pusa intreaga si nu pe parti]

Avantaje

  • Simplu de instalat si folosit
  • Ultima versiunea (2.0.5) vine in mod normal cu MinGW gcc 3.3.1, insa acesta poate fi inlocuit daca utilizatorul doreste acest lucru
  • Este freeware (Poate fi folosit gratuit in scopuri non-comerciale dar nu avem acces la surse. Pe viitor putem contacta autorul programului si cere accesul la surse.)
  • Editorul este foarte bun, are si hints pentru functiile din librariile standard
  • Este stabil in general, fiind putine cazurile cand crapa
  • Debugger-ul este unu relativ solid

Dezavantaje

  • Ultima versiune aparuta dateaza din ianuarie 2005, si reprezinta versiune 2.0.5 a produsului. Asadar, software-ul nu mai este in dezvoltare activa.
  • Utilizatorul trebuie sa creeze proiect ca sa poate compila/depana o sursa. Totusi, proiectele create sunt minimaliste (comparativ cu Visual C++ spre exemplu) si nu sunt foarte greu de folosit.

Code::Blocks

Un IDE mai complicat, insa este mai complicat doar pentru ca ofera mai multe unelte. Ruleaza sursele fara proiect insa pentru a face debug trebuie creat un proiect si sursa trebuie importata in acesta. Debuggerul este insa unul puternic. Watchul permite evaluarea variabilelor, dar si a functiilor. De asemeni se pot observa si apelurile functiilor pe stiva sistem.

Avantaje

  • Este un proiect aflat in development
  • dan: Din 2008 (de 2 ani la acest moment), nu a mai aparut vreo versiune noua si niciun post pe site. Se dezvolta ceva in SVN, dar nu pare sa se anunte vreun release nou prea curand (opinie).
  • Este usor de instalat si contine multe feature-uri
  • Editorul este foarte bun, are hints pentru functiile si obiectele (vector, deque etc) din librariile standard, dar nu ofera hints pentru clasele create de user [TODO: de testat daca mingw studio face asta]

Dezavantaje

  • Are nevoie de un proiect pentru debug
  • Nu pare un produs bine pus la punct si bine finalizat. (doar un feeling nu e un argument)
  • bogdan: mi-a crapat pe windows de vreo 2 ori cand faceam proiecte fara sa inteleg de ce (nu prea pot reproduce).
  • bogdan: mi se pare prea complicat de folosit si deloc intuitiv. am preferat sa bag printfuri decat sa incerc sa debughez.
  • silviu: am debugat eu cu el si nu e super complicat; totusi, nu e la fel de usable debugul ca in Visual Studio
  • silviu: impresia mea a fost una foarte buna dupa ce m-am jucat un pic cu el; intr-adevar, nu pare foarte bine pus la punct dar are cateva chestii super tari (scrieti "for" si apoi dati CTRL+J).

Bug: Am folosit Windowsul, si la un moment dat cand trebuia sa compileze, imi tot zice mingw32-g++.exe ca "No Disk": "There is no disk in the drive. Please insert a dist into drive D:" (unitate optiva). Si trebuie sa-i dau Cancel de cateva zeci de ori, stresant.

  • In privinta acestui bug exista o observatie si o solutie aici .

Dev-cpp

Avantaje

  • Simplu de instalat si folosit
  • Ultima versiunea (4.9.9.2) vine in mod normal cu MinGW gcc 3.4.2, insa acesta poate fi inlocuit daca utilizatorul doreste acest lucru.
  • Daca nu se creeaza nici un proiect, sursele sunt trimise automat intr-un proiect fictiv.

Dezavantaje

  • Editorul nu este grozav, necesitand setari speciale pentru a merge
  • Debuggerul crapa si este destul de greu de folosit [Silviu: Eu stiam ca e ca si cum n-ar fi acolo :)]
  • Ultima versiune aparuta dateaza din februarie 2005, si reprezinta versiune 4.9.9.2 a produsului. Asadar, software-ul nu mai este in dezvoltare activa.
  • Desi usor de folosit in prima faza, nu este foarte stabil.

Verdict

Acest IDE este de departe cea mai instabila solutie din cele 3 IDE posibile pentru MinGW. In plus, MinGW Developer Studio ii este net superior. Propunem ca acest IDE sa fie evitat in solutia de inlocuire a compilatoarelor Borland.