Szabad szoftveres fejleszt!eszközök Bán Szabolcs FSF.hu Alapítvány
Miért kell szabad szoftveres fejleszt!eszköz?,,ha inkább a GNU-n dolgozunk, mintsem szabadalmaztatott programokon, barátságosak lehetünk és a törvényt is tiszteletben tartjuk. Továbbá a GNU példaként szolgál és inspirál; ez egy zászló, amely arra ösztökél, hogy újra egyesülhessünk és megosztozzunk. A harmónia érzését adja ez meg, ami nem elérhet!, ha nem szabad szoftvert használunk. A programozók fele, akikkel beszéltem err!l, azt mondta, hogy ez a boldogság fontos és pénzzel nem helyettesíthet!.
Miért? " Kétfajta szabadságot kapunk illetve adunk: mindenki szabadon elérheti a fejleszt!eszközeinket hogy segítsen a fejlesztésben a kifejlesztett szoftver nincs semmilyen kereskedelmi eszközhöz kötve " Ezek alapján szabad szoftveres fejleszt!eszközökre van szükség a szabad szoftveres fejlesztéshez nem szabad szoftveres fejlesztés is könnyebb és hosszú távon mások által is felvállalható szabad szoftveres fejleszt!eszközök használatával
http://www.redhat.com/about/where-is-open-source/activity/
http://www.redhat.com/about/where-is-open-source/activity/
Mit használunk fejlesztéshez " Minimalista megközelítés fordítóprogram szövegszerkeszt!
Mit használunk fejlesztéshez " Valójában mire lehet szükségünk programtervez! keretrendszer projektmenedzsment rendszer verziókövet! rendszer fejleszt!környezet program keretrendszer (framework, library) nyomkövet! rendszer fordító (build) környezet lokalizációs keretrendszer hibakövet! vagy problémakezel! rendszer
Hagyományos GNU fejleszt! eszközök " GCC - Gnu Compiler Collection C, C++, Objective-C, Fortran, Java, Ada,... " make - fordítássegítés " configure - platformkezelés " autoconf, automake, libtool " gettext - lokalizáció, többnyelv#ség " gdb - debugger " strace, ktrace, truss
configure.in Automake/autoconf (GNU toolchain) autoconf configure
configure.in Automake/autoconf (GNU toolchain) Makefile.am autoconf automake configure Makefile.in
configure.in Automake/autoconf (GNU toolchain) Makefile.am autoconf automake configure Makefile.in./configure Makefile
Programtervezés " BOUML C++, Java, PHP, Python, IDL nyelvek támogatása " Fujaba Java nyelv, reverse engineering, design pattern recognition " Umbrello UML modeller C++, Java, PHP, C#, JavaScript, ActionScript, SQL, Python, Ada, IDL, XML Schema, Perl " Unimod Java, Java kliens-szerver, web, algoritmikus problémák megoldása, symbian platform
Interpretált nyelvek vagy szkriptnyelvek? " Perl - minden megoldható legalább 6 módon " Python - alacsony belép!szint, nagy tudás " Ruby - ügyeletes kedvenc, divat " Shell szkriptezhet!ség (tcsh, bash, ksh) " PHP - inkább webre, de nem kizárólag " Javascript - már nem csak weben használják " SmallTalk - nem szkriptnyelv, OOP, komoly projektek " Lisp - a sok zárójel nyelve (MI, nyelvi feldolgozás...) "...
Simple DirectMedia Layer " Többplatformos Linux, Windows, BeOS, MacOS, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, QNX, Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS, SymbianOS " Játékokhoz, emulátorokhoz, bemutatókhoz, multimédiás alkalmazásokhoz " Egységes hang, kép, esemény, thread- és id!zítéskezelés
OpenGL " Többplatformos Linux, Windows, Mac OS, Mac OS X, Solaris, AIX, HP- UX, SGI IRIX, Tru64 Unix, FreeBSD " Rengeteg ráépül! API (pl. Quake API, HalfLife, IrrLicht, etc) " Nyílt szabvány " Több programozási nyelven: C, C++, Java (Java 3D, Java OpenGL, jogl), Perl, Python, Fortran, Ada stb. " hardveres támogatás
Adatbázis programozás " Hagyományos relációs adatbázis-kezel!k MySQL PostgreSQL SQLite Berkeley DB " XML adatbázis-kezel!k exist dbxml Apache Xindice BaseX Senda "
" Make Fordítássegít! - automatizáló (build) rendszerek UNIX-os és GNU programok nagy része ezt használja GNU toolchain-be jól integrálódik " Ant Java alapértelmezés " CMake ooo-build, KDE4, Stellarium projektek is használják " SCons használja többek között: id Software, VMware, Google Chrome
" Tényleg használják CVS SVN (Subversion) Mercurial Bazaar Git " Futottak még Monotone, GNU Arch, Aegis, Superversion, OpenCM, Darcs, SVK Verziókövetés
Grafikus fejleszt!i környezetek " KDE/QT fejleszt!eszköz " RAD " Application Wizard -ok " Plugin rendszer# b!víthet!ség " Doxygen integráció " qmake " SCM integráció: CVS, SVN, Perforce, Clearcase KDevelop
Grafikus fejleszt! környezetek " Gnome/GTK+ fejleszt!eszköz " RAD " Application Wizard - ok " Plugin b!víthet!ség " CVS, Glade integráció Anjuta
Grafikus fejleszt! környezetek " C#/GTK# fejlesztésre " Debugger " Projekt és osztálykezelés " Fejlesztés alatt (NUnit-Gtk, MonoDoc integráció) MonoDevelop
GNAT Programming Studio (GPS) " Ada, C, C++, Pascal, Python IDE " GNU toolchain támogatás " Linux / Solaris / WinNT " Verziókövetés " Automata kódjavítás " Függ!ségi gráfok " Hívás gráfok
Code::Blocks " Linux / WinNT " C++ IDE " wxwindows alapú alkalmazásokhoz " Több fordítóprogramot is támogat " wxsmith grafikus szerkeszt! plugin
Grafikus fejleszt! környezetek " Java fejleszt!eszköz, nyelvi pluginekkel " Tread kezel! debugger " Source control (CVS és ClearCase) " JUnit, Ant, Tomcat integráció " Plugin Central " Az Oracle is ezt használja! Eclipse
Lazarus pascal IDE " Linux, Win32, OS/2, Mac OS X, BSD, 68K " Pascal és Object Pascal " Interfészek: Win32 GDI, GTK+, QT, wxwidgets, Aqua, Carbon, WinCE " WinCE, Qtopia, PalmOS támogatás
Egyéb többplatformos API-k " wxwindows " Többplatformos wxwidgets Windows 95/98/ME, Windows NT/2K/XP, Linux/Unix (GTK+, X11, Motif), MacOS, Mac OS X " Egységes eseménykezelés, multithreading, hálózatkezelés " OpenGL integráció
Egyéb megoldások " Cygwin Unix környezet és alkalmazások Windowsra " GNUStep Mac OS X és OPENSTEP grafikus környezet API Linuxra és Windowsra " Wine Windows API X86 GNU/Linuxon, Mac OS X alatt
Hibamenedzsment " Bugzilla klasszikus hiba kezel! rendszer hibajegyek, felhasználók, modulok, paraméterek, státuszok " Trac projekt menedzsment rendszer a hibajegyeken és feature request-eken kívül roadmap, naptár, repository megjelenítés, wiki plugineken keresztül csatlakozás más rendszerekhez, automatikus kód dokumentálás, automatikus tesztesetek, diagrammok, automatikus build és folyamatos integráció támogatás
Amir!l nem volt id! beszélni " Segédeszközök (pl. szintaktikai ellen!rzés) " Sandbox környezetek " Emulátorok " Preprocesszorok " Nyelvi eszközök (parser generator, lexical analyzer) " Moduláris fejleszt! környezetek " Keresztreferencia, kód indentálás, automatizálás (Pl. tinderbox, buildbot) " Kód cache, osztott fordítás (ccache, distcc) " Webes fejlesztés
Linkek " Az integrált fejleszt!környezetek összehasonlítása http://en.wikipedia.org/wiki/ Comparison_of_integrated_development_environments " A szabad szoftver mozgalomról általában www.gnu.hu " A Free Software Foundation Hungary www.fsf.hu " Version control blog http://www.versioncontrolblog.com " Google Summer of Code http://code.google.com/soc/
Köszönöm a figyelmet [self release]; Bán Szabolcs szabolcs.ban@fsf.hu