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 –
"
Fujaba –
"
Java nyelv, reverse engineering, design pattern recognition
Umbrello UML modeller –
"
C++, Java, PHP, Python, IDL nyelvek támogatása
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, HPUX, 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 –
"
Fordítássegít! - automatizáló (build) rendszerek "
"
Make –
UNIX-os és GNU programok nagy része ezt használja
–
GNU toolchain-be jól integrálódik
Ant –
"
CMake –
"
Java alapértelmezés ooo-build, KDE4, Stellarium projektek is használják
SCons –
használja többek között: id Software, VMware, Google Chrome
Verziókövetés "
"
Tényleg használják –
CVS
–
SVN (Subversion)
–
Mercurial
–
Bazaar
–
Git
Futottak még –
Monotone, GNU Arch, Aegis, Superversion, OpenCM, Darcs, SVK
Grafikus fejleszt!i környezetek KDevelop 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 "
Grafikus fejleszt! környezetek Anjuta Gnome/GTK+ fejleszt!eszköz " RAD " “Application Wizard”ok " Plugin b!víthet!ség "
"
CVS, Glade integráció
Grafikus fejleszt! környezetek MonoDevelop C#/GTK# fejlesztésre " Debugger " Projekt és osztálykezelés " Fejlesztés alatt (NUnit-Gtk, MonoDoc integráció) "
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 Eclipse 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! "
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 wxWidgets wxWindows " Többplatformos "
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 –
"
GNUStep –
"
Unix környezet és alkalmazások Windowsra 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 –
"
A szabad szoftver mozgalomról általában –
"
www.fsf.hu
Version control blog –
"
www.gnu.hu
A Free Software Foundation Hungary –
"
http://en.wikipedia.org/wiki/ Comparison_of_integrated_development_environments
http://www.versioncontrolblog.com
Google Summer of Code –
http://code.google.com/soc/
Köszönöm a figyelmet [self release];
Bán Szabolcs
[email protected]