Quali funzionalità predefinite mancano a Windows richieste per i programmatori? [chiuso]


13

Quali funzionalità mancano di Windows che possono migliorare la produttività di un programmatore. So che molte persone vorrebbero che alcune funzionalità di Linux e OSX vengano portate o create anche per Windows. Cosa ti manca?

Un esempio potrebbe essere l'opzione di avere più aree di lavoro. Quando non hai la possibilità di utilizzare due monitor che possono tornare utili.


Aree di lavoro multiple? Intendi ... sottodirectory?
Shog9,

10
@ Mr.CRT hai mai usato Linux?
Ygrec,

7
Penso che per "aree di lavoro" si intenda desktop virtuali.
Jesse Buchanan,

@Ygrec: si. Se, come suppone jbinto, intendi desktop virtuali, allora non sono sicuro di come giudichi uno strumento programmatore essenziale. Li trovo molto utili per compiti come l'editing delle immagini, ma per la programmazione è sufficiente aprire più console contemporaneamente - ed entrambi i sistemi operativi lo supportano (anche se con una differenza piuttosto ... triste nelle shell disponibili).
Shog9

Sia gnome che kde fanno riferimento alla funzionalità dei desktop virtuali come aree di lavoro che sono di gran lunga gli ambienti desktop Linux più comuni, pomodoro / pomodoro.
Quaternion,

Risposte:


14

Un compilatore e una shell utile.


Chiarimento basato sui commenti:

Non ero chiaro, avrei dovuto scrivere il compilatore C / C ++. I compilatori per C # o Fortran non contano, poiché molti degli strumenti e delle librerie necessari richiedono un compilatore C o C ++. In passato era davvero pessimo, in cui non era possibile creare estensioni C per Python con un altro compilatore rispetto a Microsoft, perché è quello con cui è stato compilato Python, penso che MinGW abbia risolto questo problema e tu puoi farlo con MinGW ora, ma questa è una buona ragione perché un compilatore C / C ++ standard avrebbe dovuto essere incluso o reso disponibile gratuitamente 20 anni fa. Microsoft solo recentemente sta iniziando a capire il potere di avere a disposizione un esercito di programmatori per hobby.

Non ho usato PowerShell, forse è buono. Ma l'utilità di bash per me non è nel linguaggio shell. La famiglia di lingue * sh è comunque una bestia orribile. Preferisco persino i file batch. ;) Sono cose come il richiamo della cronologia dei comandi e la ricerca di cui relativamente di base in Windows, e con pipeline e tali di cui sto parlando (e vedo che PowerShell ha pipeline, quindi va bene).

Ci sono cose buone anche in Windows, ma questo è un altro argomento. ;)


2
Ecco perché le distribuzioni Linux normalmente raggruppano diversi compilatori e interpreti con molti altri disponibili dal gestore dei pacchetti.
david4dev,

1
@Victor Hurdugaci: Hai un punto lì, ma quello che manca in modo significativo è ovviamente un compilatore per C / C ++.
Lennart Regebro,

4
Sicuramente questa risposta non è aggiornata - ottieni un compilatore e una shell ragionevole (PowerShell) in Windows 7.
FinnNk,

1
@Matt: Beh, questo è solo il bigottismo linguistico da parte tua. Ci sono molti compilatori gratuiti prontamente disponibili per altre lingue oltre alle lingue Microsoft, e dubito che li accuseresti di spingere una lingua su di te.
Robert Harvey,

4
Una shell utile di sicuro. Assolutamente ridicolo il fatto che nel 2010 non sia possibile ingrandire la finestra del prompt dei comandi. WTF ?!
Colin Goudie,

10
  • La capacità di scrivere ed eseguire programmi in varie lingue (C, C ++, Python, Perl, Ruby ...) senza dover installare nulla in più.
  • Avere almeno un editor di testo con l'evidenziazione della sintassi installato per impostazione predefinita.
  • Un gestore di pacchetti che consente di installare facilmente librerie extra, sistemi di controllo versione, IDE ecc.
  • Una potente interfaccia a riga di comando.
  • La possibilità di modificare la GUI per la massima efficienza (scorciatoie da tastiera, angoli caldi ecc.)
  • pagine di manuale
  • Avere il codice sorgente del sistema operativo e i pacchetti software facilmente disponibili e autorizzati in modo permissivo in modo da poterlo riutilizzare.
  • Buone prestazioni su hardware modesto.

2
"Avere il codice sorgente del sistema operativo e i pacchetti software facilmente disponibili e autorizzati in modo permissivo in modo da poterlo riutilizzare." Che cosa?
Ygrec,

2
apt-get source package-nameogni volta che vuoi sapere come funziona un determinato pacchetto software.
david4dev,

4
Non sono d'accordo con il tuo primo punto. Perché gonfiare il sistema operativo con diversi editor, compilatori e ambienti di runtime, nella speranza di soddisfare tutti? È meglio lasciare che ogni programmatore installi le cose di cui ha bisogno.
Victor Hurdugaci,

3
@Victor Hurdugaci: Sarebbe vero se Windows non fosse già gonfio con apparentemente nulla. Una tipica installazione di Linux è un ordine di grandezza più piccolo e viene fornito con tutte queste cose.
Matt Joiner,

2
(1) Ho appena installato Ubunto e ho dovuto installare le lingue e lo strumento di sviluppo separatamente, proprio come faccio su Windows. (2) Notepad è in effetti un editor predefinito inadeguato; TextPad è più vicino a un punto debole. (4) Supporto tastiera globale di Windows migliore di qualsiasi desktop Linux che ho usato; Riesco a far funzionare il desktop e la maggior parte delle app anche senza il mouse.
Mud

4

Potrei abbandonare "richiesto" dal titolo come ho sviluppato per Windows felicemente per quasi 20 anni. Certo, ho sviluppato una buona cassetta degli attrezzi di utilità e strumenti. Vedi l'elenco di Scott Hanselmann per i principianti. È di prim'ordine e guarda indietro fino al 2003.

A proposito, Windows 7 include PowerShell che aiuta con i commenti "shell decente".

Detto questo, è sempre bene avere strumenti migliori integrati. Prendi uno qualsiasi degli strumenti nell'elenco di Scott.

Realisiticamente, MS potrebbe certamente migliorare l'interfaccia utente di molti strumenti integrati come regedit, task mgr (cfr. Process Monitor) e gli strumenti di visualizzazione degli eventi perf. Sarebbe bello avere il supporto integrato per più appunti. Da OSX, vorrei esporre e il loro supporto multi-desktop è buono. Sarebbe bello se Windows supportasse nativamente (ovvero più facilmente) il trascinamento del testo dalle caselle di testo.

XCode fa davvero schifo IMO, quindi non vorrei che su Windows. VS è molto meglio ma non integrato, quindi forse VS Expess integrato con una possibilità di aggiornamento. Ovviamente, l'impronta del sistema operativo cresce con questo (come fa l'OSX), quindi c'è anche un aspetto negativo.

distribuito gcc è molto buono, quindi sarebbe molto gradito come framework integrato da usare per qualsiasi compilatore (vedi Incredibuild per una soluzione VS).

Sarebbe bello se fosse più facile ottenere e utilizzare una build controllata del sistema operativo per trovare problemi. L'uso dei cavi di debug è un po 'estremo per le buone informazioni che ottieni da Checked Build. Le VM possono farlo facilmente - in tal caso qualcuno per favore commenta con un link.


Sì, un IDE di base sarebbe particolarmente bello, in mancanza di un inizio un editor di testo moderatamente OK.
Finlandia,

@FinnNk, quali requisiti hai per un editor di testo "moderatamente OK"?

Qualche supporto per l'evidenziazione della sintassi, la ricerca / sostituzione di regex, più finestre, spazi bianchi visibili e numerazione delle righe - quindi non ho in mente qualcosa come Emacs (anche se sarebbe bello come opzione). Sebbene non sia un vero editor di testo, oggigiorno per piccoli frammenti di codice .net uso LinqPad.
Finlandia,

4

BASH, sed, grep, awk, find e ssh


Ho eseguito la maggior parte di quelli su Windows ... e posso fare la maggior parte di quanto sopra con PowerShell.
Murph,

2
ssh con il supporto di x windows;) Bash è potente ma tutto ciò che è sotto è personalizzabile, una shell è potente quanto le risorse che può manipolare.
Quaternion,

Da quando sono richiesti awk e sed per un programmatore?
Dinamico

2
  • Copia / incolla per più oggetti
  • Incolla senza formato (senza informazioni su carattere / dimensione)

3
+1 per formato libero. Finisco sempre per incollare in un'area di testo su una pagina Web o su un blocco note e quindi tagliare per rimuovere gli stili di testo.
Macneil,

3
Windows supporta l'incollaggio di testo normale, le applicazioni devono solo implementarlo come opzione.
GrandmasterB

1
@GrandmasterB Quindi è un desiderio che gli appunti senza formato siano quelli predefiniti.
pestaa,

2

La possibilità di modificare l'interfaccia utente in base alla conoscenza degli utenti di livello diverso.

Ad esempio come sviluppatore / amministratore potresti aver bisogno di un livello esperto nell'interfaccia utente.


1

Gli strumenti di elaborazione dei file Unix (wc, sort, uniq, awk, cat, grep, find, eccetera), tra cui - come altri hanno già detto - una buona shell (ad esempio, bash).

Per essere produttivo in Windows, quando sto lavorando con qualsiasi cosa relativa al testo, alla fine dovrò andare nella casella degli strumenti del comando Unix. Fortunatamente, Cygwin è una risorsa eccellente solo per questo scopo.

Detto questo, è necessario "domare" Cygwin per funzionare bene con il file system di Windows; a meno che non si ignori alcune impostazioni predefinite, è possibile ottenere file con autorizzazioni dannose che sono difficili da eliminare. Qualcosa di troppo al di sopra delle esigenze di base e stai meglio con una VM o doppio avvio, ma per i miei scopi sono abbastanza soddisfatto di Cygwin.


0

Sono d'accordo con gli altri post in modo da aggiungere:

Mi manca ssh con x forwarding vs desktop remoto Windows. Per coloro che non sanno che è possibile eseguire un programma desktop attraverso la rete ma si comporta come una finestra locale.


0

Supporto per argomenti della riga di comando più lunghi. Incontrerai rapidamente problemi durante la creazione di soluzioni java complesse che non utilizzano i sistemi di build di Microsoft.


0

valgrinde gcov?

Uso PowerShell durante lo sviluppo su Windows (come hobby) e ho installato gli strumenti GnuWin32 (sed, awk, grep, ecc ...) e Python per ottenere degli script facili, quindi non c'è problema.

Ma mi ritrovo a colpire un muro ogni volta che voglio ispezionare il mio programma ... Certo che posso usare il debugger (un po ') ma:

  • come si individua una perdita di memoria?
  • come si identificano i maiali della memoria?
  • come si identificano i punti caldi?
  • come si identificano le parti inutilizzate / non testate del codice?

Ho visto alcuni strumenti qua e là e c'era una buona domanda su StackOverflow e il numero di strumenti elencati è piuttosto spaventoso ... e anche i loro limiti.

Linux è stato realizzato da sviluppatori per sviluppatori, quindi ha ottenuto molti più strumenti intuitivi per gli sviluppatori :)


0

Copia / incolla con la funzione cronologia.

Fortunatamente ClipX offre una soluzione:

ClipX

PS Non sono affiliato con ClipX;)


-1

Una shell decente, più un compilatore sarebbe un buon inizio per quanto riguarda le funzionalità "predefinite".


csc.exe è incluso in .NET framework. È possibile compilare il codice C # con esso.
Victor Hurdugaci,

@Victor: è incluso con Windows stock?
Josh K,

Sì. .NET 3.0 viene fornito con Windows 2008 e Vista mentre 3.5 viene fornito con Windows 7.
Victor Hurdugaci,

3
Sono d'accordo, se stiamo parlando della versione corrente di Windows, questa risposta non ha senso: ottieni sia un compilatore che un PowerShell.
Finlandia,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.