OS, udvikling/programmering, og problematikker

Tags:    programmering

Hejsa MedUdviklere.

Jeg undre mig lidt, Windows skulle være så brugervenligt, og Linux så besværligt, men, når det kommer til programmering/udvikling, så er det næsten lettere på Linux/Unix, end det er hos Windows.
Tillige med, er det også lettere at finde martiale til at programmere hos Linux, frem for Windows, der har et slags kode biblotek hvor man kan hente sine informationer fra.

Er jeg den eneste der føler dette?

---

Dermed siger jeg ikke at det er det samme for en begynder.



det ville det også være i windows.

dir /S *.cpp > filnavn.txt





det ville det også være i windows.

dir /S *.cpp > filnavn.txt


Yeah, det var egentligt et dårligt eksempel. Da jeg mere tænkte på funktioner hvor man piper output videre til et andet program. Hvis man fx piper finds output videre til grep eller lign.



Jeg kan se at tonen allerede er blevet rå og ubarmhjertig, så det skal nok blive en "god" og "saglig" debat...

Loke, det gøres enkelt med en for-kommando:
for /F %I in ('dir /B /S *.cpp') do @findstr getline %I
Men det er sjældent nødvendigt, da man bare kan bruge:
findstr /S Hello *.cc

Piping af output fungerer på samme måde i cmd som på Linux, dvs: >fil, 2>fil, 2>&1, >>fil osv.

Jeg har arbejdet med dos og windows i mere end 20 år og har aldrig haft brug for cronjobs, og jeg tror ikke jeg er atypisk. cmd har en "at" kommando der kan køre ting på bestemte tidspunkter, men jeg har aldrig overvejet at bruge den. Skulle jeg lave noget lidt avanceret i den retning, ville jeg til enhver tid foretrække at gøre det i python eller ruby i stedet for bash eller cmd

Jeg ved ikke hvordan man laver en kommando-promt der fortæller hvilet repository man står i, bl.a. fordi jeg er fuldstændig ligeglad. Per mener at det er en mangel i cmd at han ikke ved hvordan han gør, men det er i mine øjne blot endnu et eksempel på at muligheden for at kunne noget, skaber et "behov". cmd har kommandoen prompt, der kan lave det den skriver om, men jeg (og 99,99999% af alle dos/windows brugere) har aldrig brugt den. Jeg har derimod spildt til på at "lege" med PS1 og PS2, i et forgæves forsøg på at få Linux til at skrive noget brugbart.

Linux nørderne synes at have et enormt "behov" for at lave avancerede ting i et terminalvindue, et behov som Windows folket tilsyneladende ikke har, eller løser på andre måder.

ls kan langt fra det man kan med dir, ofte må man ty til find, og ofte ender man ud med en kombination af flere kommandoer.

Når jeg spørger de af mine kollegaer der er Linux freaks om hvordan man laver "findstr /S Hello *.cpp" på Linux begynder de at snakke om find, xarg og grep.

Jeg anser mig selv for at være en almindelig dødelig når det kommer til Linux. Jeg har brugt den en del, og har efterhånden fundet ud af det mest nødvendige. Men jeg har aldrig ønsket at komme til at lave mere udvikling på Linux, der er ganske enkelt ikke noget af det jeg har brug for, der gøres bedre eller enklere end på Windows.

Misforstå mig ikke, jeg ser gerne at der er et gratis alternativ til Windows og ser gerne Linux fremmet. At jeg stadig hænger fast i Windows skyldes mest:
1: Gammel vane
2: Det er det vi bruger på arbejde (som regel)
3: Mine børn spiller spil, der kun virker på Windows.
4: Linux tilbyder mig ikke noget, som Windows ikke kan.



Jeg kan se at tonen allerede er blevet rå og ubarmhjertig, så det skal nok blive en "god" og "saglig" debat...

Man kan da prøve at holde den saglig, selv om der bliver skudt lidt hårdt fra begge sider :)

Loke, det gøres enkelt med en for-kommando:
for /F %I in ('dir /B /S *.cpp') do @findstr getline %I
Men det er sjældent nødvendigt, da man bare kan bruge:
findstr /S Hello *.cc

Yeah, den første der ligner næsten noget man kunne finde på at gøre i en *nix shell også.

Piping af output fungerer på samme måde i cmd som på Linux, dvs: >fil, 2>fil, 2>&1, >>fil osv.

Jeg har ikke arbejdet så meget i cmd skal jeg gerne indrømme, men er det muligt også at bruge | til at smide det videre mellem programmer? Jeg bruger det i en række tilfælde til at pipe noget output om video konvertering videre til noget segmentering af videoen samtidig.

Jeg har arbejdet med dos og windows i mere end 20 år og har aldrig haft brug for cronjobs, og jeg tror ikke jeg er atypisk. cmd har en "at" kommando der kan køre ting på bestemte tidspunkter, men jeg har aldrig overvejet at bruge den. Skulle jeg lave noget lidt avanceret i den retning, ville jeg til enhver tid foretrække at gøre det i python eller ruby i stedet for bash eller cmd

Jeg vil mene at cronjobs nok også mere er en serverting, men der giver de god mening. Jeg tror dog at har lige så stor fleksibilitet, så de værktøjer er nok omtrent lige gode, men har hver deres platforms særheder. At du ville skrive selve scriptet i python eller ruby betyder jo ikke at du ikke har behov for cron eller at ;)

(snip prompt flaf)

Linux nørderne synes at have et enormt "behov" for at lave avancerede ting i et terminalvindue, et behov som Windows folket tilsyneladende ikke har, eller løser på andre måder.

Og Windows ditto har et enormt behov for at lave ting i grafiske dialoger, sådan kan vi o så svine hinanden lidt til om nødvendigt.

ls kan langt fra det man kan med dir, ofte må man ty til find, og ofte ender man ud med en kombination af flere kommandoer.

Ja, det er jo en smagssag hvad man bedst kan lide. ls er bare til det aktuelle dir, hvor man på *nix har find til de rekursive opslag, jeg synes det giver god mening at have de seperat da jeg mener der er noget forskellige funktioner. På de rekursive ting er find så tilgengæld væsentlig mere avanceret end dir. Så det er nok et præference spørgsmål.

Når jeg spørger de af mine kollegaer der er Linux freaks om hvordan man laver "findstr /S Hello *.cpp" på Linux begynder de at snakke om find, xarg og grep.

At de ikke kender den lidt simplere metode jeg smed før gør jo ikke platformen dårlig. Det betyder bare at de ikke kender den.

Jeg anser mig selv for at være en almindelig dødelig når det kommer til Linux. Jeg har brugt den en del, og har efterhånden fundet ud af det mest nødvendige. Men jeg har aldrig ønsket at komme til at lave mere udvikling på Linux, der er ganske enkelt ikke noget af det jeg har brug for, der gøres bedre eller enklere end på Windows.

Det kommer jo lidt an på hvad man er vandt til, og hvordan man arbejder, jeg er på OS X ofte, og der er jeg glad for en terminal hvor jeg hurtigt kan bruge curl til at tjekke HTTP requests, og har xmlstarlet til at lege med xml med, men det er jo igen individuelt. Hvis du var startet på Linux ville du nok have det på samme måde med Windows.

Misforstå mig ikke, jeg ser gerne at der er et gratis alternativ til Windows og ser gerne Linux fremmet. At jeg stadig hænger fast i Windows skyldes mest:
1: Gammel vane
2: Det er det vi bruger på arbejde (som regel)
3: Mine børn spiller spil, der kun virker på Windows.
4: Linux tilbyder mig ikke noget, som Windows ikke kan.

Jeg forstår dig såmen fint. Jeg oponerede primært mod at simple ting på Linux krævede "den store maskinmester eksamen" da jeg mener at tingene er omtrent lige simple eller lige komplicerede om man vil.



Windows har .NET og Visual Studio 2010. Visual Studio bruger jeg til alt det jeg kan komme afsted med. Ellers bruger jeg emacs.
Skal jeg programmere til OS X, iPad eller iPhone så bruger jeg en mac, hvor XCode er at fortrække. Xcode bruger jeg til alt det jeg kan komme afsted med på denne platform. Koder jeg RoR, bruger jeg Xcode til at redigere filerne, og Finder til at holde rede på min mappe struktur.
Jeg bruger SVN til versionstyring. Til versionsstyring på windows bruger jeg enten AnkSvn til Visual Studio eller Tortoise (mener jeg den hedder) hvis jeg skal bruge SVN fra stifinderen.

Til Linux bruger jeg svn fra kommandolinien, eller fra emacs. Emacs bruger jeg til udvikling, hvor jeg kan slippe afsted med det, ellers prøver jeg mig lidt frem.

Under OS X og Linux har jeg tilbøjlighed til at bruge en eller anden form for shell, dog har jeg aldrig rigtig haft brug for en shell under Windows, dog har jeg prøvet PowerShell, og den er meget fed. Den kan rigtig mange fede ting.

Hvis jeg havde et ønske som jeg vidste kunne gå i opfyldelse, så var det at Visual Studio blev tilgængeligt på OS X og til Linux, for Visual Studio er fan***s cool.

Jeg synes ikke at det er svært at programmere til hverken OS X, Windows eller Linux, hvis man bare kender sin toolchain og SVN.

Man har man pages til hjælp på Linux, MSDN på Windows og developers network (mener jeg det hedder) til Apple. Man pages skal man lige lære at kende, men de er gode når man først har set dem an. MSDN stikker dog man pages'ne og developer networket. Dog er Apples ikke helt ringe.

Hvad angår test miljøer, så er Visual Studios mest integreret. Den stikker alt det jeg har prøvet, dog vil jeg sige at jeg bruger Google Test til projekter som jeg ved jeg kan komme til at sidde og udvikle på til flere platforme. Det er fordi at jeg kan bruge en shell til at køre dem på OS X og Linux, hvor imod man kan få den integreret til Visual Studio.

Eneste jeg godt gad kunne var at lære at bruge et build system andet end make. Måske noget der var cross platform såsom SCons.

Af databaser bruger jeg enten MySQL hvor jeg kan ellers MSSQL Server. Jeg er igen en fortaler for MSSQL Server pga T-SQL og den tætte integration med Visual Studio. Dog har MySQL også nogle fede værktøjer, som er lette at arbejde med.

I mine øjne er Windows meget gode til at gøre materiale let tilgængelig for udviklere. Faktisk er de i mine øjne bedre end de fleste. Java, MySQL og Objective-C folkene (og mange andre) kunne godt tage ved lære af MSDN, og alt det som Microsofts development afdeling har kastet ud. Entity Frameworket, Linq, T-SQL osv. Men det er jo bare min mening. I andre mener vel sikkert noget der er stik modsat.




Indlæg senest redigeret d. 01.12.2010 17:57 af Bruger #1151
Ja | virker også på windows, f.eks:
findstr getline *.cpp | findstr /v cin
Det betyder, find getline i alle .cpp filer, men undlad de forekomster hvor der står cin

Jeg har heldigvis aldrig været nødt til at røre et Apple produkt, og jeg vil gå langt for at undgå det.



Jeg har aldrig brugt cmd, og kommer nok heller aldrig til det. Skal jeg bruge noget så bliver det Windows PowerShell og dens integrerede scripting miljø. Som er cmd på syre og hash.

Jeg rører alle de miljøer jeg kan komme i nærheden af. For som man siger, "Har man kun en hammer til sin rådighed, så ser man alle problemer som søm".



Indlæg senest redigeret d. 01.12.2010 21:43 af Bruger #1151
Syntes lidt du besvare selv på din egen kritik Bertel. Windows-bruger bruger ikke cmd da Microsoft bevist har valgt (og det er et fair nok valg) ikke at have særlig meget fokus på promten da de gerne vil brande som værende super brugervenligt og gennemarbejdet GUI. Fint fint.

Men Linux brugere nyder fortsat at shells er mere avancerede end GUI. Og sammen med at Linux bare er ret meget fremme når det handler om terminalen, er der ingen tvivl om at linux-brugere elsker at bruge terminalen. Det er IKKE fordi vi er tvunget... Terminalen har bare sine fordele.

Men som diskussionen her startede, så snakkede vi om folk der er teknisk dygtige, og ønsker at udvikle. Og jeg er helt sikker på at sådanne folk elsker terminalens SVN, SSH understøttelse. Ja generelt bare elsker at mange værktøjer er integreret i terminalen. Kan slet ikke forstå, at du ikke kan se det gode idet. Så er den heller ikke længere...



Jeg kan godt forstå at det kan være rart med en masse features i terminalen/konsollen, men jeg savner ikke nogen features i windows cmd. Linux får ikke ekstra point i min bog, for at tilbyde features jeg ikke har brug for.

Du nævner selv svn, den kan installeres på Windows på et minut, hvis jeg har brug for den. Jeg bruger mest tortoise sammen med cvs, det fungerer fint.



Theis, hvis du vil have en terminal på windows så installerer du da bare cygwin. Case closed.

Desuden forstår jeg udemærket godt Bertel. Jeg gad heller ikke have noget der var overspækket med features som jeg ikke brugte.



t