- A név jelentése "Clipper to C++ Compiler".
- Névterek, szálak, kivételek, objektumok, unicode ...
- XMLRPC, SQL, GTK (Glade), Jáva terminál ...
- Éles banki alkalmazások működnek vele.
- Forrásban tölthető le LGPL licensz alatt.
A jelenlegi állapot az Eltérések a CCC és Clipper között dokumentumból mérhető fel legjobban. A CCC kiterjeszti a régi Clippert. Korszerű, kiállja az összehasonlítást olyan nyelvekkel, mint a Python, Ruby, Pike. Különösen hasonló a CCC és a Python hangulata, mindkettő praktikus, tömör, mégis könnyen olvasható, kerülik a Java-ra jellemző tudálékosságot.
Hozzászoktam, hogy a fórumokon ilyeneket kapok: "Minek Clipperrel foglalkozni a .NET korában?" (sting), "Időgép is kellene hozzá", "Mit ér egy nyelv önmagában, osztálykönyvtár nélkül?". Először is, van egy s más a CCC-ben. Másodszor, a CCC-t könnyebb C betétekkel bővíteni, mint az említett nyelveket.
A Java bővítése C-vel ellenjavallt. Elvész a hordozhatóság, túl bonyolult, az átlagprogramozó nem is ért hozzá. Hasonló a helyzet a Pythonnál. Az alkalmazáshoz szükséges bővítéseket a futtatókörnyezet/interpreter módosításával kell(ene) megvalósítani. Ezekben a nyelvekben valóban nélkülözhetetlen az egész informatikai univerzumot magábafoglaló osztálykönyvtár.
Ezzel szemben a CCC (C fordítás közbeiktatásával) natív binárisokat készít, ezért bármikor alámerülhetünk C-be. A Clipperrel együtt automatikusan fordulnak a C modulok. Kisebb jelentősége van így az osztálykönyvtáraknak, mert mindig rendelkezésre áll a C-ből elérhető infrastruktúra. Ez a CCC filozófiája.
- A hozzászóláshoz be kell jelentkezni
- 2365 megtekintés
Hozzászólások
"A Java bővítése C-vel ellenjavallt. Elvész a hordozhatóság, túl bonyolult, az átlagprogramozó nem is ért hozzá. Hasonló a helyzet a Pythonnál. Az alkalmazáshoz szükséges bővítéseket a futtatókörnyezet/interpreter módosításával kell(ene) megvalósítani."
Hát ez érdekes, szerintem elég sarkított vélemény. Én is az átlag progamozók közé tartozom, s gyakorlatban a swig (http://www.swig.org/) segítségével illesztettem C++ kódot python-hoz, s nem igazán okozott túl sok nehézséget. Azt meg végkép nem értem miért is kellene a bővítéshez módisítani a futtatókörnyezetet, simán modul fordul, amit be lehet tölteni futásidőben.
- A hozzászóláshoz be kell jelentkezni
Köszönöm a hozzászólást. A Swiget nem ismertem. Egyelőre annyit látok belőle, hogy az "Interfacing C/C++ and Python with Swig" doksi egy 115 oldalas PDF.
Megmutatom inkább, hogy van kivezetve a fork() hívás CCC-ben: A forrás itt látható. A make rendszernek semmit sem kell mondani, a forrás magától fordul, csak attól, hogy ott van a többi prg és cpp között. Az eredmény egy object (fork.obj), ami a többi objecttel együtt linkelődik.
- A hozzászóláshoz be kell jelentkezni
"az "Interfacing C/C++ and Python with Swig" doksi egy 115 oldalas PDF."
Szép darab, szerencsére nem kell elolvasni, elég ezt:
http://www.swig.org/tutorial.html
Vannak persze hibái, limitációi, de én a tutorial alapján percek alatt
elkészítettem első python-os modulomat. Tudom ajánlani.
- A hozzászóláshoz be kell jelentkezni
"A Java bővítése C-vel ellenjavallt. Elvész a hordozhatóság, túl bonyolult, az átlagprogramozó nem is ért hozzá. Hasonló a helyzet a Pythonnál."
Python esetén ennek pont az ellenkezője igaz. Lásd pyqt, pygtk, pygresql, stb-stb.
- A hozzászóláshoz be kell jelentkezni
A Pythont én is jónak tartom, de amit írtam mégis igaz. A pyqt csomag nem az alkalmazást bővíti, hanem a Python interpretert. Másképp nem is lehet, mert a py és cpp kód más "dimenzióban" vannak, nem tudnak máshol találkozni, csak az interpreterben. Ezzel szemben a CCC-nél a cpp kód feldolgozása rákerül ugyanarra sínre (félúton), mint amin a prg fordítás megy. Ez a lényeg.
- A hozzászóláshoz be kell jelentkezni
Én az "ellenjavallt", "elvész a hordozhatóság" megállapításokra reagáltam.
Ha én pythonban programozok, akkor pl. a pyqt-vel nem veszítem el a qt hordozhatóságát.
- A hozzászóláshoz be kell jelentkezni
Mit csinálsz, amikor C vel bővíted a Pythont? Linkelsz egy dinamikus könyvtárat, és azt a Python kezeügyébe rakod, vagy a bővítést direkt belelinkeled az interpreterbe.
Mit csinálsz, amikor Ptyhon alkalmazást írsz? Py fájlokat gyártasz, amikből pyc-ek lesznek.
Ez a két dolog elég élesen elkülönül. Egyébként nyilvánvaló, hogy a pyqt-s programod egy qt-val bővített Python interpretert használ, és a pyqt nem a Te alkalmazásod része.
Az "ellenjavallt" állítás elsősorban a Jávára volt megfogalmazva. A "hasonló a helyzet" pedig minden interpreterre vonatkozik: Ezek nem bővíthetők közvetlenül, hanem csak az interpreteren keresztül. Ez mindenképpen plusz bonyodalmakkal jár.
- A hozzászóláshoz be kell jelentkezni
Amint azt tejfel kolléga is írta, nem vészes ez annyira.
A Python előnyei meg elég számosak. Dehát ízlések és pofonok ugye...
- A hozzászóláshoz be kell jelentkezni
Ezen "bonyodalmak" teljesen hiányoznak viszont a frissen megjelent IronPython esetén. Abban ugyanis közvetlenül használhatóak a c# -ban, vagy más nyelven megírt .NET/Mono cuccosok.
- A hozzászóláshoz be kell jelentkezni