» »

[C++] Programiranje razvojnega okolja za Linux - Ideje

[C++] Programiranje razvojnega okolja za Linux - Ideje

«
1
2

smoke ::

Pozdravljeni,

začel sem programirat C/C++ (nisem začetnik programiranja v C/C++-u) na Linuxu in na moje začudenje ne obstaja nobeno razvojno okolje, ki bi mi ustrezalo. Probal sem jih verjetno kr vse. V enih me moti code completion (je ali nefunkcionalen ali pa totalno neuporaben), drugi ne podpirajo C++11 sintakse.. ipd. Zato sem začel razvijat svoje razvojno okolje in sicer v C++/Qt frameworku.

 Prototip

Prototip



Stvar je trenutno še dokaj nefunkcionalna. Podpira samo odpiranje projektov, datotek in barvanje sintakse.


Zanima me, kaj vi mislite, kaj bi naj dobro razvojno okolje omogočalo/podpiralo?

napsy ::

Zanima me predvsem v cem bi se tvoj IDE razlikoval od drugih?
"If you die, you die. But when you live you live. There is no time to waste."

smoke ::

Ideja je da bi bil čimbolj lightweight, ampak ne na račun funkcionalnosti. In pa seveda da bi stvar delala kot je treba. Torej relevanten code completion (to je bil kr problem pri teh, ki sem jih sprobal), barvanje sintakse, itd. Nimam še celotne predstave kaj naj vključim v projekt, zato sprašujem za mnenja :)

jype ::

A Eclipse pa ne maraš? :)

morbo ::

Zakaj se raje ne pridružiš kakšnemu FOSS projektu in tam izboljšaš stvari ki te motijo? Šansa da iz tega tvojega projekta iz nule na koncu rata kaj uporabnega, je dokaj nizka, sori.

Tudi referenca, sodeloval sem pri znanem projektu XY, je veliko boljša kot; nekje na disku se mi valja na-pol-uporaben kos programa

napsy ::

no sj, poskusit ni greh. Sam se mors zavedat da preden je stvar vsaj mal uporabla zna kr hitr minit kaksno leto. Tak da kot ze zgoraj receno, raje se pridruzi kakemu obstojecemu projektu.

No ce pa bos ze kaj delu bi pa za mene bil killer feature integriran vim + gdb + valgrind + python + cscope + irc :)
"If you die, you die. But when you live you live. There is no time to waste."

Zgodovina sprememb…

  • spremenil: napsy ()

black ice ::

jype je izjavil:

A Eclipse pa ne maraš? :)

This. Jaz ga uporabljam komaj dober mesec in sem navdušen. Zaenkrat, kot nad vsako novo igračko.

smoke ::

jype: nazadnje ko sem ga probal je bil code completion malo bedast. Ni znal ugotovit da hocem skompajlat c++11 kodo in ni ponudil nic iz novih headerjev itd.

morbo: To bi sicer bila ena moznost ampak kaksnih radikalnih sprememb verjetno ne bi mogel nardit. Sicer pa, v koncni fazi pisem stvar za sebe. Ce ne bo htel noben drug uporabljat, vredu. Jaz ga bom uporabljal in ogromno znanja bom pridobil iz tega ker sem okolje razvil. :)

black ice ::

Ne biti tako pesimističen. Seveda bomo potestirali končni izdelek. Če ne drugega, kot si sam rekel, boš dobil nekaj izkušenj.

WizmoTo ::

Eclipse ni ravno lightweight. Za moje pojme je celo orenk bloat, tako da človeka čisto razumem, če hoče svoj IDE. Za kakšne hitre stvari veliko rajši uporabim kakšen editor (Geany recimo) ali pa Vi, kot pa bi to šaro poganjal in se matral z nastavitvami in grdimi xml projekt fajli. Brez integriranega gdb-ja in code completiona (pa kakšen GUI editor za GTK ali QT mogoče?) pa itak noben IDE ne zasluži imena IDE :)
Integriran valgrind tudi ni slaba ideja, še bolj prav bi prišel kakšen online realtime man za C/C++ lib.

Zgodovina sprememb…

  • spremenil: WizmoTo ()

smoke ::

Nekdo, ki me razume :). Eclipse je počasna krava, že zarad tega ker je napisan v Javi. Sicer je pa to IDE primarno namenjen Javi. Tisti CDT plugin je pač poskus da bi bil IDE tut uporaben za C/C++ programerje in jim imho ni najbolj uspelo.
Nevem, mogoče sem staromoden, ampak jaz pričakujem da se mi na modernem računalniku softwer odpira instantno. Programi, ki se odpirajo več kot 2 sekundi, so za mene jajca.

napsy ::

ce bo tvoj IDE mel dober plugin sistem in dobro podprte keyboard bindinge si ze na pol poti do zmage (pri men) :-)
"If you die, you die. But when you live you live. There is no time to waste."

zhigatsey ::

Si že poskusil QTCreator? Potem CodeBlocks... Ali pa Anjuta ali KDevelop (za tadva je fajn če malo poznaš autotools). Meni ustreza že emacs (autocomplete + clang za code completion) ampak je potrebno več časa da postaneš res domač v njem. Enako velja tudi za vim. Eclipse in Netbeans pa tudi meni nekako nista za c++...

Isotropic ::

QTCreator...

Mavrik ::

Zanima me, kaj vi mislite, kaj bi naj dobro razvojno okolje omogočalo/podpiralo?


Predvsem refactoring (premikanje metod iz/v razrede, v druge datoteke, preimenovanje funkcij in spremenljivk - tako da se vse reference popravljajo), inteligenten "go to symbol/file/definition" (tako da ve v kerem namespacu si) in dober namespace in type-aware autocomplete so funkcionalnosti, zaradi katerih uporabljam IDEje.

Se mi pa zdi da glede na to, da stane ena boga škatla z i5, 16GB rama in 128GB SSDja borih 600€, da preprosto premalo ceniš svoj čas če misliš da boš lahko dovolj hitro dohitel te projekte, da bi se splačalo.
The truth is rarely pure and never simple.

smoke ::

zhigatsey, vse kar si naštel sem že sprobal. QtCreator ne podpira c++11 sintakse (lambda funkcije recimo, zaserjejo indentation), codeblocks ne dela ko vklopiš KDE theme engine, Anjuta pa KDevelop sta pa vbistvu malo boljša notepada :).

Mavrik, sej to niti ni moj cilj. Tega ne pišem zato da bi kogarkoli prehitel ampak, ker so stvari, ki me pri teh obstoječih motijo in ker se bom zlo dost naučil. Win-win situacija torej :). Drugač pa, hvala za predloge.

Invictus ::

Nauči se vi. To je vse kar UNIX admin/developer potrebuje.

Vse ostalo je bloatware. Tudi grafični vmesnik.

Pravi UNIXaši delajo v konzoli :D.
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

KernelPanic ::

Invictus je izjavil:

Nauči se vi. To je vse kar UNIX admin/developer potrebuje.

Vse ostalo je bloatware. Tudi grafični vmesnik.

Pravi UNIXaši delajo v konzoli :D.
Podpis. >:DSam pravi UNIXas nima vecje place od kakega uindouz b00mbarja. :DKer ce ni grafike, za sefa itak ni nc vredn, ce se nic ne vidi. :D Malo sale za dobro jutro ... :D

smoke ::

Invictus, tale je pa dobra. Ne me narobe razumet, sem zagovornik konzole, ampak nemoreš pa bit maksimalno produktiven pri programiranju samo z uporabo vi-ja. Že management projektov je nočna mora. Ampak če tebi ustreza.. potem le. Meni nikakor ne. :)

KernelPanic ::

smoke je izjavil:

Invictus, tale je pa dobra. Ne me narobe razumet, sem zagovornik konzole, ampak nemoreš pa bit maksimalno produktiven pri programiranju samo z uporabo vi-ja. Že management projektov je nočna mora. Ampak če tebi ustreza.. potem le. Meni nikakor ne. :)
No jaz pa server rihtam z uporabo vi in za editiranje config datotek je vrhnuski, ko se ga privadis. Osebno nisem hitrejsi z nobenim drugim urejevalnikom. Resda je na zacetku "pain in the ass", ko se pa navadis bljiznic, je pa usodno privlacno brzinski. Kupil sem si tudi rabljen prirocnik (za ceno 3eh piv v antikvariatu) in stvar spila.

Zgodovina sprememb…

Isotropic ::

noraguta ::

Invictus je izjavil:

Nauči se vi. To je vse kar UNIX admin/developer potrebuje.

Vse ostalo je bloatware. Tudi grafični vmesnik.

Pravi UNIXaši delajo v konzoli :D.

Ma admin ni developer in pri vecjih projektih dobrote ide okolij pridejo prekleto prav.
Napiši si svoj ide. Dokler sem bil v fohu sem povsem dobro folgal svoje razvojno okolje za obskuren funkcijski jezik. Eclipse je tudi zame neuporaben mastodont. Pa velik srece.
Pust' ot pobyedy k pobyedye vyedyot!

smoke ::

KernelPanic: tut jaz uporabljam konzolo za editiranje configov, ampak za C/C++ development pa to ni :)
loki3000: lepo :)

Zgodovina sprememb…

  • spremenil: smoke ()

KernelPanic ::

smoke je izjavil:

KernelPanic: tut jaz uporabljam konzolo za editiranje configov, ampak za C/C++ development pa to ni :)
loki3000: lepo :)
No saj pravim, vsako orodje ima svoj namen, tudi z gedore kljuci ne mores izvijaca odvit. :D

BigWhale ::

Mavrik je izjavil:

Predvsem refactoring (premikanje metod iz/v razrede, v druge datoteke, preimenovanje funkcij in spremenljivk - tako da se vse reference popravljajo), inteligenten "go to symbol/file/definition" (tako da ve v kerem namespacu si) in dober namespace in type-aware autocomplete so funkcionalnosti, zaradi katerih uporabljam IDEje.


Jest refactoring se vedno raje pocnem na roke. Tko al tko mors vso kodo se enkrat pogledat, tudi ce delas unit teste. Najvec kar uporabljam je search/replace pri preimenovanju zadev. :>

black ice ::

KernelPanic je izjavil:

No saj pravim, vsako orodje ima svoj namen, tudi z gedore kljuci ne mores izvijaca odvit. :D

Nisem prepričan, če razumeš pomen napisanega.

Isotropic ::

hahaha, zih nikoli ni stopil ven iz svoje sobe, da prijavi kaj takega:D

KernelPanic ::

Zaj... sm ja, bom popravu! :D:)):)Mislu sem vijaka odvit, ne izvijaca.

Zgodovina sprememb…

BigWhale ::

KernelPanic je izjavil:

Zaj... sm ja, bom popravu! :D:)):)Mislu sem vijaka odvit, ne izvijaca.


Ne prvega ne drugega ne mores. Nevem v cem je problem, jest sem analogijo cist lepo razumel.

smoke ::

Tak, odločil sem se da postam malo novosti glede razvojnega okolja, ki ga razvijam. :) Trenutno se še bolj ali manj ukvarjam s samo textedit kontrolo, ampak trenutno (zelo hitro!) delujeta syntax highlighter in code completion.

Za parsanje kode uporabljam library, ki se mu reče libclang. Libclang je vbistvu interface do clang compiler frontend-a, ki omogoča semantično analizo source kode (in vseh includanih fajlov), kar je pa seveda super, saj programer vidi tisto kar vidi potem prevajalnik. :) Sam library omogoča tudi preverjanje sintaktičnih napak v realnem času ampak tega še nisem implementiral.

Evo screenshot polizdelka :)

 CodeEdit kontrola

CodeEdit kontrola

sdgfsdfas ::

Zgleda kul, mogoče stvari ki jih razvijam v C/C++ celo na linuxih začnem programirat. čeprav sem še vedno in love with MS Visual C++ express :)

napsy ::

smoke: zelo pohvalno! Se en task na wish listi: hiter dostop do man page-ov :)
"If you die, you die. But when you live you live. There is no time to waste."

smoke ::

wetex: se strinjam glede samega Visual C++ okolja ampak sam prevajalnik na windowsu je pa obup. IMHO, se mu sploh ne bi smelo rečt "c/c++ prevajalnik", ker to ni, saj ne upošteva standardov. :) c++11 standard bog ve kdaj bo podprt.

napsy: hvala :). Stvar razvijam kar pospešeno saj mora bit narejena do takrat ko se faks začne (da bom mel v čem programirat, hehe). Kaj se pa tiče man page-ov. Bom pogledal kak bi lahko vključil, da bo čimbolj uporabno in enostavno za uporabit. :)

Še en screenshot, z malo redesigna:

Icematxyz ::

Pohvale in le tako naprej torej.

smoke ::

Icematxyz: hvala :)

Nov dan, nov napredek, hehe :). Kontrola sedaj obarva "probleme" v kodi in pove kaj točno je narobe (in v določenih primerih ponudi predlog za popravek). Takole nekako to zgleda:

camx ::

Imaš zadevo kje hostano, da se ta pogledat/testirat?

smoke ::

Nimam trenutno nikjer hostano ker se je vse skup dokaj v razsulu ampak ko se bom spravil pa malo refaktoriral kodo, bom pa objavil nekam pa pastal link sem :)

noraguta ::

wetex: se strinjam glede samega Visual C++ okolja ampak sam prevajalnik na windowsu je pa obup. IMHO, se mu sploh ne bi smelo rečt "c/c++ prevajalnik", ker to ni, saj ne upošteva standardov. c++11 standard bog ve kdaj bo podprt.

kerih standardov, kater prevajalnik, kater os pa katero arhitekturo? 11ka še tud približno ni standard. pa naj se gre za android, iPofl, al pa windows, pa tud bsd in linux nista komformna z standardom.
Pust' ot pobyedy k pobyedye vyedyot!

noraguta ::

drugač pa fajn, upam da ti rata vsaj self hostat okolje. zgleda preprost pa funkcionalen. (edin mogoče bi seb dodal spodej pod kodo shell)
Pust' ot pobyedy k pobyedye vyedyot!

smoke ::

Microsoftov C++ prevajalnik sem mislil in "conformance" C++ standarda :). Ne podpira niti C++98 standarda, kaj šele C++11. LLVM Clang recimo, je dost, dost boljši glede tega. Res pa je, da deluje samo na Linuxu in OS X.

MrBrdo ::

Ma pozabi Linux in pojdi na OS X :) Xcode uporablja zgoraj omenjen Clang LLVM in dela super. Xcode je ornk zadeva in težko se kakršnakoli opcija na Linuxu primerja z njim, podobno kot se ne more z MSVS. Ker pa je OS X Unix-based lahko več ali manj vse knjižnice uporabljaš, ki jih imaš na Linux, pa tudi X11 server imaš (XQuartz).
MrBrdo

Zgodovina sprememb…

  • spremenilo: MrBrdo ()

egonk ::

smoke je izjavil:

Microsoftov C++ prevajalnik sem mislil in "conformance" C++ standarda :). Ne podpira niti C++98 standarda, kaj šele C++11. LLVM Clang recimo, je dost, dost boljši glede tega. Res pa je, da deluje samo na Linuxu in OS X.


Za C++98 se mi zdijo bolj mejni primeri, bolj je problem, da ignorirajo C99. VS2012 je bil pa res poden, hkrati ne podprejo C++11 in ukinejo podporo za XP.

http://herbsutter.com/2012/05/03/reader...
http://www.microsoft.com/visualstudio/1...

Mavrik ::

Jao spet to. A ni Microsoft dovoljkrat povedal da imajo oni C++ prevajalnik in da C standardov ne mislijo podpirati?
The truth is rarely pure and never simple.

egonk ::

Mavrik je izjavil:

Jao spet to. A ni Microsoft dovoljkrat povedal da imajo oni C++ prevajalnik in da C standardov ne mislijo podpirati?


Kaj hočeš povedat, da se kot stranka ne smem pritožit nad situacijo?

smoke ::

MrBrdo, vem ja. :) Sem sprobal in vem da dela super, ampak še nimam dovolj dnarja za Macbooka, zato imam Linux in pa Clang prevajalnik za developer mašino :).

Mavrik, sej to je to, niti C++ prevajalnika nimajo :). To kar majo oni je nek delno standarden prevajalnik z njihovimi dodatki. C++-like jezik, if you will.

Mavrik ::

Hočem reči da je poslušati konstantno jamranje o tem kako ti prevajalnik za en jezik ne prevaja drugega že malo butasto s toliko alternativami na trgu.

Mavrik, sej to je to, niti C++ prevajalnika nimajo . To kar majo oni je nek delno standarden prevajalnik z njihovimi dodatki. C++-like jezik, if you will.


Hmm, nazadnje kar sem gledal je bil C++03 support praktično implementiran(z nekaj hrošči/razlikami, ki v svetu C++ kompilerjev niso kaj preveč presenetljivega ;(), C++11 pa je bil delni, a zaostajal za ICC/GCC. A imaš kak link ki potrjuje da MSVC ne implementira C++ standardov?
The truth is rarely pure and never simple.

Zgodovina sprememb…

  • spremenil: Mavrik ()

egonk ::

Mavrik je izjavil:

Hočem reči da je poslušati konstantno jamranje o tem kako ti prevajalnik za en jezik ne prevaja drugega že malo butasto s toliko alternativami na trgu.


Ne spremljam preveč, ampak iz glave kot resno alternativo poznam samo ICC, nisem pa gledal ali res že podpira WinRT. Lahko pa zaključma, tole je itak offtopic, tebi se to ne zdi problem, meni pa se, ok.

Looooooka ::

egonk je izjavil:

Mavrik je izjavil:

Jao spet to. A ni Microsoft dovoljkrat povedal da imajo oni C++ prevajalnik in da C standardov ne mislijo podpirati?


Kaj hočeš povedat, da se kot stranka ne smem pritožit nad situacijo?

Tako je.
Portabilnost ni v njihovem masterplanu.
Deal with it :)

smoke ::

Mavrik:
http://msdn.microsoft.com/en-us/library...
http://wiki.apache.org/stdcxx/C++0xComp...

Problem je pa še v Microsoftovih "dodatkih" k jeziku, s katerimi je podsledično napisana standardna knjižnica. Kar pomeni da s to knjižnico ne moreš uporabit drugega prevajalnika kot VC++.

Nevem no, mogoče ni tak velik problem, ampak jaz rad standardno kodo pišem :)

smoke ::

egonk je izjavil:

Mavrik je izjavil:

Hočem reči da je poslušati konstantno jamranje o tem kako ti prevajalnik za en jezik ne prevaja drugega že malo butasto s toliko alternativami na trgu.


Ne spremljam preveč, ampak iz glave kot resno alternativo poznam samo ICC, nisem pa gledal ali res že podpira WinRT. Lahko pa zaključma, tole je itak offtopic, tebi se to ne zdi problem, meni pa se, ok.


Kak pa to, da uporabljaš C in ne C++? Ne maraš objektno-orientiranega programiranja al maš kak drug razlog? :)
«
1
2


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
!

[C++] Povezave

Oddelek: Programiranje
4260851 (212) DamijanD
»

Vim kot cpp IDE

Oddelek: Programiranje
223067 (2347) Mavrik
»

C++ IDE on Windows

Oddelek: Programiranje
387549 (6641) noraguta
»

Sprejet standard C++11

Oddelek: Novice / Ostala programska oprema
4011398 (9480) Bistri007
»

Visual Studio 2008 in C

Oddelek: Programiranje
302613 (2088) BlueRunner

Več podobnih tem