- uggla
- Medlem ●
- Stockholm
Personligen tyckte jag också att xCode var perfekt när jag började använda det. Men ju mer jag använt det så börjar jag irritera mig på småsaker såsom att man måste gå djup in i menyer varje gång man ska hitta ett objekt eller varje gång man växlar mellan IB och vCode så återställer sig en av paletterna.
Jag har inte använt XCode så mycket så jag kan ha fel/missat något i XCode, men när jag kodar java saknar jag bl.a följande saker:
- Refactoring - man kan inte byta namn på klasser/paket etc vilket är otroligt skönt att kunna göra när man arbetar med större projekt
- Javad-doc comments coloring o formatting - man får inte sina javadoc-comments i separat färg + man får inte sina javadocs autoformattade på ett snyggt sätt.
- Javadoc linking - man kan inte få upp javadocavsnittet för en av sina funktioner/klasser enkelt
- Automatic building - det går 100gr snabbare att utveckla om IDE:n bygger projektet hela tiden, istället för precis innan man ska köra det
- Vettigt Subversionstöd - stödet för subversion är bara skumt, nån som använder det fullt ut ens?
- Vettig Outliner - man kan inte få en snabb enkelt överblick av klassen man jobbar med (utan att ta upp nåt slags supermega-fönster..)
- Vettiga felmeddelanden - XCodes felmeddelanden från javac är riktigt dåliga, man måste läsa igenom loggen och sånt
Debugging har jag inte hunnit testa i XCode.. (tyckte väl inte det va värt det..)
Eclipse löser alla dessa problem, och det är också gratis Så när jag kodar java är det inget snack om saken, Eclipse whoppar XCodes ass flera gånger om. Men det kanske inte är så konstigt iom att Eclipse är gjort för javakodning.
Andra saker som Eclipse har som är sjukt bra:
- Auto TODO-sense - alla kommentarer som börjar med "//TODO" registreras som todos och hamnar i en lista som man kan kolla igenom, riktigt bra, speciellt när man är flera på ett projekt
- Otroligt stort plug-in-bibliotek - där finns allt man kan tänka sig som plugins: uml, xml-editor, projekt-managament, ftp, bla bla.. och det bara växer..
- Symbol-focus - man kan highlighta t.ex en variabel så att man tydligt ser alla ställen den förekommer på i en klass lätt
- Auto-formatting - man kan lätt se till att ens filer får snygg formattering
- Bra syntax-checking - kan känna t.ex av kodsnuttar som logiskt sätt aldrig kommer att nås, eller variabler som inte används m.m..
- Java 1.5-stöd out of the box - Har stöd för SDK 1.5 (Java 5) utan att man behöver rota i system-filer.
- Override/implement agents - lätt att skriva implementationer på t.ex interface-klasser - man får välja vilka metoder man vill imlementa ur en lista och klass-strukturen skapas automatiskt - sparar en jävla massa dötid..
- Getter/setters agent - lätt att skapa horder av get/setX-metoder genom att bara välja variabler ur en lista.. sparar massa dötid
- Javadoc agent - man kan skapa dokumentation över hela sitt projekt i tre knapp-klick.
- Korrekt source-tree struktur - Eclipse håller java-filer i ett enligt java-standarden korrekt filträd så att man lätt kan använda filerna i ett annat projekt - XCode lägger filerna hur som helst.
Däremot är det typ omöjligt att utveckla native java MacOS-apps i Eclipse - då är man nog tvungen att köra XCode (?)
Sen när jag kodar PHP så saknar jag följande saker i XCode:
- PHP/apache/mysql-stöd
ciao
Snabbheten är dålig, och stabiliteten har i alla fall i tidigare versioner varit botten. Man drar igång en kompilering, och på bästa 80-talsvis tar det evigheter, men det är delvis för att den ofta aldrig blir klar utan helt enkelt dyker efter en lång stund.
Jag kör lite Xcode, men mest CodeWarrior. CodeWarrior är inte lika snabbt och pålitligt som under OS9, men det är i alla fall en bra bit bättre, och inte minst är användargränssnittet enormt mycket bättre. Det känns mycket svårt att hitta alla inställningar i Xcode. I CodeWarrior är det inte precis lätt alla gånger men det finns i alla fall någorlunda samlat.
Debuggingen - kanske viktigaste saken i en IDE - är sådär i båda, inget som imponerar, men jag tror att CodeWarrior vinner även här.
Felmeddelandena är vedervärdiga. Det är det viktigaste näst debuggingen (om ens det) och de hanteras osnyggt. Andra IDE'er brukar slänga upp felmeddelandena direkt. I Xcode måste man plocka fram ett speciellt fönster med en liten hemlig ikon. Visst går det, men det är så klantigt gjort! Hur kan man ens få idén att gömma undan felmeddelandena som en sekundär sak (det hanteras precis som en sådan där "expertgrej" som mycket få behöver och bara ibland), medan man prioriterar helt andra saker som man skitar ner gränssnittet med?
Naturligtvis vinner CodeWarrior en massa på vanans makt, men även om jag försöker ta hänsyn till det så är Xcode frustrerande. Det är så otroligt mycket plåtter överallt, så man ser inte skogen för bara träd. "Less is more", Apple! Vet ni inte det? Ge oss enbart det väsentliga på ytan, och därifrån lättbegripliga och logiska sätt att hitta ner till de grisigare detaljerna. Det tycker jag inte Xcode gör.
Eclipse ja... Jag har den på listan över IDE'er som jag ska kolla upp, och se om den duger till annat än Java.
..nu håller de ju på att släppa C++ Development Tools till Eclipse, så man ska kunna koda c/c++..
har inte testat men det verkar coolt
Finns det inga som jobbar på apple och som kan svenska som läser det här?
Förrästen, är XCode plugin-baserat? Anledning till att Eclipse blivit så accepterat är ju att allt är plugins coh typ open source - allt - så alla kan liksom bidra till att göra det bättre direkt.
Jag tror att om XCode var mer "öppet" skulle utvecklare själva ordna till det så som de vill ha det. Det är ju det som är tjusningen med programmerare - de programmerar. Nu kanske det redan är öppet, jag vet inte..
Förrästen, är XCode plugin-baserat? Anledning till att Eclipse blivit så accepterat är ju att allt är plugins coh typ open source - allt - så alla kan liksom bidra till att göra det bättre direkt.
I någon mån ja, man kan åtminstone skriva egna makefiler kom kopplar Xcode till andra kommandoradskompilatorer än gcc. MEN, dels är det uppenbarligen knepigt för de försök jag sett fungerar ganska knackigt, och dels, för en liten tid sedan hörde jag från en kille som just jobbar med sådant att Apple lyckades sabba Xcode 2 så att det inte längre går. (Minns inte detaljerna men kan gräva fram dem vid behov.) Apple hade pajat det på något sätt. Förhoppningsvis bara en övergående bugg, men Apple är inte tillräckligt intresserade av tredjepartslösningarna för att testa mot dem och samarbeta med dem.
Med tanke på det skulle jag nog tro att framtiden är ljusare för saker som Eclipse.
Det enda riktiga jag har mot Xcode är att Code Sense är lite dåligt, det completar t ex inte structs.
Annars föredrar jag Xcode över Visual Studio 2003 och tidigare. (nyare har jag inte testat)
Om man vill använda makefiles i sitt Xcode-projekt kan man ju helt enkelt göra ett build-target som utför en scriptfil som i sin tur kör make, eftersom Xcode tar varningar och felmeddelanden från gcc genom gccs stdout så kommer det fortfarande fungera.
Då kanske det var C-structs den inte klarade av :/
typedef struct { ... } min_struct;
Ett annat fel är också att den inte hanterar namespaces i C++ så bra... om man inkluderar <vector> och gör ett objekt av "std::vector" så får man ingen complete på det objektet, men om man istället kör using namespace std; och gör objektet av "vector" så fungerar det.
Då kanske det var C-structs den inte klarade av :/
typedef struct { ... } min_struct;
Ett annat fel är också att den inte hanterar namespaces i C++ så bra... om man inkluderar <vector> och gör ett objekt av "std::vector" så får man ingen complete på det objektet, men om man istället kör using namespace std; och gör objektet av "vector" så fungerar det.
Screenshotet jag la in är också from ren C-kod, har du senaste versionen av XCode?
/Kalle
Jag kör senaste Xcode men jag upptäckte en sak nu:
Istället för
typedef struct { ... } min_struct;
Kan man ju köra
typedef struct min_struct_ { ... } min_struct;
Och då fungerar CodeSense!
edit:
Fast i det aktuella projektet fungerar det inte... jag använder mig inte av Xcodes egna buildsystem utan jag kallar på en scriptfil som utför själva kompileringen.
Problemet verkar vara att CodeSense inte kan hitta mina headers, var anger man det?
Ah här (http://maxao.free.fr/xcode-plugin-interface/) står det:
Citat:
Apple's free IDE, Xcode, only provides support for C(++), Objective-C(++), Java, Applescript and Makefile. Although it's possible to use a Makefile for other languages, I think it's more practical to fully integrate them through dedicated plugins.
At the time I wrote this page, Xcode already has a working plugin interface (it's even used by CoreData compiler/editor, CVS/Subversion/Perforce integration, GDB debugging…). However this interface is not yet public, because not really finished. According to Apple, it'll be public in future release but no real date is provided : developers just have to wait :-(.
..ursäkta det långa urklippet.. men det verkar ju iaf som bättre tider kommer för XCode..
annars försöker snubben göra en egen öppen plugin-api.. så utvecklare ska kunna modda XCode.. coolt den "funkar" till XCode 2.1 och 2.2 än så länge...
ciao
Jag tycker att Xcode fungerar ganska bra, förutom att det ibland är lite svårt att göra inställningar.
Och vad beträffar felhanteringen: Felaktiga rader markeras med ett tecken för varning eller fel, och klickar man på tecknet så står det nere i vänstra hörnet vad man gör för fel.
Men visst, ibland hade det varit bättre att ha det i någon form av dialogruta.
Felaktiga rader markeras med ett tecken för varning eller fel, och klickar man på tecknet så står det nere i vänstra hörnet vad man gör för fel.
..inte när man kodar java.. vad jag vet..
Eclipse kollar dessutom syntax fel utan att man behöver builda - vilket är guld - man får veta simpla fel p studs.
GAAAAAAH!!!
Nu fick jag brutalt sinnesspel på Xcode! Jag råkade deleta en fil, och den flyttade inte den till papperskorgen, den raderade filen totalt ... TACK.
Tur att du kör versionshantering för ditt projekt och bara körde en snabb rollback för att få tillbaka filen....
/Kalle
Så trevligt att tråden tog lite fart till slut
Tack för alla svar!
Vad finns det för utvecklingsmiljöer för Objective-C som är bättre än XCode?
Jag skulle säga att slutsatsen av denna tråd är att XCode är suveränt för Objective-C men har svaga punkter i sitt stöd för andra språk.
/Kallle
Det är möjligt att kalleh har rätt. Jag har länge ansett att det är slöseri med tid att lära sig Objective-C, eftersom det är en Mac-specifik återvändsgränd som bara kommer att finnas så länge NeXT-gänget styr Apple. Sedan åker det ut direkt. Jag kan inte tänka mig att Adobe m.fl. gillar det.
Men jag har inte grävt djupt, så jag får väl fråga: Hur portar ni Objective-C-program till Linux och WIndows? Finns det bra stöd för det? Jag tycker aldrig jag ser någon tala om det, trots att det är viktigt.
Det är möjligt att kalleh har rätt. Jag har länge ansett att det är slöseri med tid att lära sig Objective-C, eftersom det är en Mac-specifik återvändsgränd som bara kommer att finnas så länge NeXT-gänget styr Apple. Sedan åker det ut direkt. Jag kan inte tänka mig att Adobe m.fl. gillar det.
Men jag har inte grävt djupt, så jag får väl fråga: Hur portar ni Objective-C-program till Linux och WIndows? Finns det bra stöd för det? Jag tycker aldrig jag ser någon tala om det, trots att det är viktigt.
Mac-specifik återvändsgräns? Hört talas om GCC? GNU Compiler Collection?
Det är möjligt att kalleh har rätt. Jag har länge ansett att det är slöseri med tid att lära sig Objective-C, eftersom det är en Mac-specifik återvändsgränd som bara kommer att finnas så länge NeXT-gänget styr Apple. Sedan åker det ut direkt. Jag kan inte tänka mig att Adobe m.fl. gillar det.
Carbon är också Mac-specifikt, så hur man än vänder och vrider på det måste man använda något Appleframework för att skriva GUI-bitarna. Enligt mina erfarenheter går det då mycket, mycket snabbare att ta fram GUI med Cocoa än med Carbon.
Men visst, Objective-C är definitivt Mac-specifikt. Portabel Objective-C innebär att man får jobba utan Cocoa, och då är det inte mycket man får med i kitet. Själva språket Obj-C är väldigt tunt, medan frameworken är desto rikare. Kombination är dock (i min åsikt) oslagbar, men portabel är den inte.
Carbon är också Mac-specifikt, så hur man än vänder och vrider på det måste man använda något Appleframework för att skriva GUI-bitarna. Enligt mina erfarenheter går det då mycket, mycket snabbare att ta fram GUI med Cocoa än med Carbon.
Men visst, Objective-C är definitivt Mac-specifikt. Portabel Objective-C innebär att man får jobba utan Cocoa, och då är det inte mycket man får med i kitet. Själva språket Obj-C är väldigt tunt, medan frameworken är desto rikare. Kombination är dock (i min åsikt) oslagbar, men portabel är den inte.
Cocoa är ju ett API, så det spelar ingen roll hur portabel koden är om man pekar till API, som bara finns på Mac OS. Om samma API finns på Windows & Linux skulle koden vara portabel. Det är upp till Apple hur portabel koden skall vara, dvs om Apple skulle vara villiga att fixa API för Windows (Cocoa för windows [aka. YellowBox for Windows]) och API för Linux.