Acum câteva zile am fost contactat de un utilizator de bază al comunității Ubuntu România care mi-a atras atenția asupra unui proiect pe care îl dezvoltă. M-am uitat pe pagina proiectului, dar subiectul (fiind exclusiv de programare) mă depășește. Cum ideea de programare în Linux mi se pare interesantă (chiar dacă nu știu programare, am cochetat în tinerețe cu Basic, Cobol, Fortran, Pascal...), am decis să-i prezint proiectul, fiind convins că se va bucura de susținere din partea celor interesați.
Prezentarea este preluată de pe pagina menționată anterior, dar și din descrierea dezvoltatorului; la fel, cele câteva imagini (mai puțin două) sunt trimise de același dezvoltator.
Limbajul Go este un vârf tehnologic creat și folosit de Google și are în spate una din cele mai interesante comunități de specialiști de la marile corporații software, comunitate din care face parte și dezvoltatorul proiectului prezentat. Go este foarte asemănător cu limbajul C, dar aduce multe lucruri noi utile cerințelor de dezvoltare actuale.
Instalarea unui mediu care permite dezvoltarea poate fi un coșmar pentru unii, deoarece majoritatea developerilor lucrează în Vim și mai mult pe Mac-uri (de aceea și cele mai multe tutoriale sunt în acest sens). Mai există și alte instrumente, dar totul se reduce la configurări în linie de comandă, variabile de mediu, legături, Linux, Unix, etc.
Lui George i-a venit ideea de a realiza un instrument care să simplifice acest lucru acum 2 ani, când a fost întrebat de către un copil de 9 ani cum poate să învețe programare pe Ubuntu (pe care lucra ca un utilizator obișnuit); același copil i-a sugerat și numele programului.
Astfel a luat naștere Gopei shell, care a pornit inițial ca un installer pentru compilatorul de Go și un mediu (IDE) popular foarte simplu, creat special pentru Go. Proiectul a rulat timp de 2 ani numai pe Ubuntu.
Ulterior, Gopei a fost rescris și acum rulează pe vreo 14 platforme (OS X, Ubuntu, Debian, Mint, Fedora, Sabayon, OpenSUSE, FreeBSD...) - din păcate, n-am reușit să-l lansez în Arch, deși zice că s-a instalat - funcționează și în ARCH Linux (a 15-a!) după instalarea libpng12 din AUR:
Gopei a primit numele de cod The Convergence.
Ce face mai exact Gopei shell acum:
- instalează (evident) mediul de dezvoltare, compilator, tot ce trebuie pentru a programa în GO sub Linux;
- modifică mediul în fișierele de configurare pentru a arata ca în imaginile prezentate mai jos (orice mediu e dificil, asa că dezvoltatorul spune că a adus cea mai ușoară experiență pentru utilizator);
- pune pe interfața din IDE funcțiile necesare pentru compilare, cros compilare, dar și funcțiile necesare;
- mulți programatori folosesc github ca platforma pentru proiectele lor. Gopei crează spațiul de lucru necesar, integrat cu github dacă e cazul, ca să nu o mai facă utilizatorul dupa instalare. I se comunică în timpul instalării contul de pe github și leagă mașina de acesta, astfel încât din IDE doar se face push la proiect și el se replică pe github;
- este un shell, aduce și leagă cu IDE-ul un set de scule scrise de George care fac legătura cu github, astfel încât ceea ce se lucrează poate fi aruncat rapid pe github ( se poate lucra foarte simplu în modul de colaborare) sau se pot clona alte proiecte fără necesitatea de a cunoaște o mulțime de comenzi git;
- permite mutarea de pe un calculator pe altul cu sisteme de operare diferite și lucrul/scrisul codului acolo; de exemplu, te muți pe Fedora sau pe Sabayon sau pe Mac sau pe FreeBSD - chiar dacă nu cunoști modul de instalare în noul sistem de operare sau fișierele de configurare, prin rularea unei singure comenzi se poate instala GOPEI care vine cu tot ce-i trebuie unui utilizator pentru a programa în GO;
- modul server îi ajută pe specialiști să lucreze rapid pe multe servere fără să repete secvențe de instalare: o comandă rulată este suficientă!
- modul classroom (sală de curs) permite instalarea în scopul predării limbajului GO astfel încât orice ar face elevii în IDE, acesta pornește întotdeauna cu setările inițiale (lui Geo i-a mulțumit cineva din Brazilia pentru că a găsit exact ceea ce căuta :));
- la un moment dat s-au dezvoltat niște instrumente precum un debugger specializat (gdb nu functioneaza bine pe go) sau presenterul cu care cei de la Google fac prezentări. În GOPEI a fost adaugat un tool care le instalează fără ca utilizatorul să știe alte comenzi sau depozite de unde se instalează;
- a fost integrat și presenterul menționat mai sus care permite prezentarea proiectului în IDE.
Pagina de Wiki a proiectului menționează că se lucrează la partea de cloud care va aduce ceva absolut unic. Ce interesați trebuie doar să urmărească dezvoltarea proiectului pentru a se lămuri ce și cum.
GOPEI oferă cea mai ușoară experiență de programare pe aproape orice platformă și cu toate instrumentele necesare la îndemână.
Referințe:
- Gopei WIKI
- http://forum.portal.edu.ro/index.php?showtopic=206046
- http://forum.ubuntu.ro/viewtopic.php?id=21502
- https://forum.golangbridge.org/t/gopei-shell-1-6-the-convergence-release/2997
Există programatori GO printre cei care au citit articolul? Există programatori de orice fel printre cititorii articolului? Ce părere aveți de acest proiect? Orice comentariu este binevenit și poate contribui la creșterea proiectului dezvoltat de George!
George Calianu a zis
Dezvoltand proiectul Gopei a trebuit sa trec prin majoritatea editoarelor si mediilor IDE pentru Go. M-am oprit la LiteIDE nu pentru ca ar fi cel mai bun sau cel mai complet ci pentru ca din punctul meu de vedere e cel mai potrivit pentru limbajul Go. Am mai primit intrebari de genul de ce nu editorul X ca e customizabi sau ca e profesional. Cele mai multe, chiar profesionale nu ofera o experienta buna pentru Go care este destul de simplu si de altfel, mediile respective oferind multe optiuni pentru lucruri care nu exista in Go. Ele sunt bune pentru alte limbaje.
O alta situatie care apare in mediile si editoarele cunoscute este modul de lucru. Incepand cu Vim, un editor puternic prin optiuni dar absolut obositor pentru un utilizator normal si teminand cu VS Code,Atom,Sublime au un mod de lucru complicat, uneori peste mana sau neproductiv. De ce as zice Esc : GoBuild cand pot apasa o tasta/buton care sa faca build. Nu mai spun de configurare, pus sistemul de autocompletare sau debugerul.
Aici intervine combinatia Go + LiteIDE + Gopei shell care ofera usurinta in dezvoltare si o foarte buna viteza de lucru (se poate compara statistic pe operatii) dar si instalarea foarte usoara. Cred ca nici un alt sistem nu ofera instalare compilator,IDE cu autocompletare,legatura cu git,si mai nou cloud, dintr-o comanda ce dureaza sub 2 minute si pe majoritatea sistemelor Unix/Linux.
E ceea ce s-ar numi... parfum ?
daydr3am3r a zis
Cele de la JetBrains ofera "instalare compilator,IDE cu autocompletare,legatura cu git,si mai nou cloud" si sunt valabile pentru toate platformele. Si evident Visual Studio si Xcode dar alea sunt platform exclusive asa ca sunt excluse.
daydr3am3r a zis
Vim e editor de text, cine programeaza in asa ceva? Also, Mac-urile sunt populare in WebDev, nu neaparat la modul general cand vine vorba de programare. Cat despre GOPEI, nu face nimic special fata de orice IDE profesional. Din pacate pe Linux multe sunt destul de dubios de instalat si extrem de modulare de iti vine sa iti faci singur unul ca sa nu mai fii nevoit sa treci prin procesul de instalare si configurare. Guess that's a big plus for GOPEI.
Bobses a zis
Știu că Vim e editor de text (și încă unul puternic, dar pe care nu-l prea înghit - prefer nano). Se pare că Vim are un plugin pentru programarea în Go (Vim Go) și este sau a fost destul de folosit până la apariția Gopei: https://github.com/fatih/vim-go