Ho affilato i coltelli di codifica e sono tornato in sviluppo. Qualche anno fa, molte persone hanno affermato che il debugger di Symantec Think Pascal che veniva sul Mac (classico) era l'assoluto problema delle api e che nient'altro era uguale a nessun altro. Ho trovato questa affermazione strana, considerando che nessuno ha provato a clonare il debugger ... che cosa ha reso speciale questo debugger?Che cos'è il debugger Think Pascal che lo rende così leggendario?
risposta
Rispondere a questa come una persona che ha lavorato presso (pre-Symantec) Pensa in un ruolo minore durante lo sviluppo di Macintosh Pascal (1984).
Era rivoluzionario per due motivi: in primo luogo, era un compilatore incrementale. Sbarazzarsi del ciclo di edit-compile-link-test è un enorme vantaggio. Se tu sei Google Mel Conway (chief scientist di Think), credo che troverai alcune note sulla costruzione di compilatori incrementali (ho guardato il suo sito principale prima di postare e sembra essere in costruzione).
Il secondo motivo era che si trattava di una GUI, quando nient'altro era e funzionava con il codice di programma effettivo. Per metterlo a confronto, non credo che i debugger simbolici per MS-DOS o Mac fossero disponibili fino a diversi anni dopo (ricordo un progetto Mac nel 1985/86 dove stavo interpretando costantemente i dump di assembly per il resto del squadra), e sono ben lontani dal debug di livello sorgente. Microsoft ha rilasciato un debugger a livello di origine con Quick C nel 1988 (iirc); Non ho mai lavorato con Turbo-Pascal o Turbo-C, quindi non so cosa avessero.
Oggi, praticamente ogni IDE offre funzionalità uguali o migliori di debug ...
Ah! Freddo ! Questi altri link non entrano in questi dettagli! Come qualcuno che è cresciuto usando strumenti dell'epoca, ora posso avere una base per il confronto. Grazie per la risposta ! –
Mentre speravo di sentire da una più ampia varietà di persone, mi è venuto in mente che la maggior parte di voi si trova nelle cose correnti più sanguinanti, e non ci sono molti di voi che ricordano perfino Windows 95, figuriamoci il classico Mac OS (cioè System 6) .... è una cosa buona in sé e per sé, non fraintendetemi, ma non sono riuscito a tenerne conto.
Mentre Mike Robinson aggiunge un'interessante intuizione, ho cercato su Google il mio culo e ho trovato i seguenti tre collegamenti. Per farla breve, sembra che il debugger di Think Pascal fosse anche un interprete che poteva eseguire codice arbitrario ... così si potevano impostare i breakpoint, isolare un bug, quindi digitare una correzione proposta nella finestra del codice e vedere il codice eseguito ... o qualcosa di simile. Naturalmente, vorrei sentire da quante più persone possibile, ma per ora:
Here is the Think Pascal 4.5.a1 publicly available
An interesting thread on Think Pascal at the Mac 68k Liberation Army forum
ho amato THINK Pascal. Il debugger è stato fantastico e impensabile per il suo tempo. Non fino a quando non ho usato Eclipse negli ultimi anni ho avuto qualcosa che si avvicinava al senso di Wow che TP mi ha dato - tutto fino ad ora è stato un compromesso, un passo indietro.
THINK Pascal ha dato il tipo di attenzione all'interfaccia utente, all'usabilità, che ho cercato di dare ai programmi con cui stavo scrivendo. I suoi programmatori mi hanno dato il rispetto di pensare che potesse importarmi per me che cosa fosse colorata, o dove avrei potuto accedervi, passare del tempo considerando questo e fatto grandi scelte. Anche se altri strumenti allora e da allora sono stati più potenti - MPW, il Macintosh Programmer's Workshop di Apple, per esempio notevole - il loro potere era inaccessibile, mal organizzato (dal punto di vista di un utente ingenuo), e scostante - dovevi essere "nel club" "per trarne vantaggio (in pratica, ciò significava essere un utente a linea di comando unixy). PENSA Pascal mise i regali là dove potevo raggiungerli.
È difficile ricostruire ciò che ho amato di TP, creare caratteristiche specifiche che lo hanno reso eccezionale, e mi dispiace. Se avrò la possibilità aprirò il mio vecchio account di posta elettronica e vedrò se riesco a trovare delle specifiche.
- 1. Ciò che rende le pagine di Facebook caricate così velocemente
- 2. Che cosa rende la funzione mail() di PHP così lenta?
- 3. In che modo Chrome rende i PDF PDF così buoni?
- 4. Rails JS Response, rende sia lo stato che il modello?
- 5. Che magia usa `std :: sort` internamente che lo rende molto più veloce?
- 6. Che cos'è una stringa in stile Pascal?
- 7. Cosa rende VxWorks così deterministico e veloce?
- 8. Che cosa rende grande una specifica funzionale?
- 9. Perché GHC rende la correzione così confusa?
- 10. Over-release che rende la finestra intorpidita
- 11. Ciò che rende questa applicazione Android debuggable
- 12. Il debugger lldb dice che il mio oggetto è nullo quando non lo è?
- 13. In che modo GDI + funziona così velocemente?
- 14. Che cosa rende sargable un'istruzione SQL?
- 15. In che modo Ruby rende #initialize privato?
- 16. In che modo TeamViewer è così veloce?
- 17. Che cosa rende ajax non sicuro il cross domain?
- 18. In che modo il vim-patogeno rende tutto più semplice?
- 19. Che cosa c'è di così bello nell'ORM?
- 20. Python Debugger che supporta Black Boxing?
- 21. VS2015 Debugger che mostra valori errati?
- 22. Lua Debugger che può allegare al processo
- 23. In attesa che il flash player si connetta al debugger
- 24. Che cosa rende Erlang inadatto a lavori computazionalmente costosi?
- 25. Che cosa rende la "hot deployment" una "problematica"?
- 26. Che cosa rende una console dell'app o un'applicazione Windows Form?
- 27. vincolo sottodominio (Rails 3) rende server locale (sottile) così lento
- 28. Documentare una funzione che rende un JSON con Yard?
- 29. Che cosa rende un progetto ASP.NET un'applicazione o una libreria?
- 30. Carica il valore da dimens.xml e lo rende negativo
Era leggermente più economico, e perché ha le parole "Non fatevi prendere dal panico" in lettere grandi e amichevoli sulla copertina –