Nie jestem pewien, czy jest to w ogóle możliwe, ale obejrzałem kilka filmów z przykładami programowania, w których wydaje się, że program jest napisany w jakimś wierszu poleceń, a nie w ładnym graficznym IDE. Jestem ciekawy, co może się dziać w tych filmach. Czy można napisać program bez IDE?
Oto dwa przykłady: http://www.youtube.com/watch?v=hFSY9cWjO8o (@ 6 min) http://www.youtube.com/watch?v=tKTZoB2Vjuk (@ 5 min)
Czy ktoś mógłby wyjaśnić, jak to się robi?
Dziękujemy wszystkim za wspaniałą opinię!
Odpowiedzi:
Wszystko, czego potrzebujesz, aby napisać program, to edytor tekstu i kompilator (lub tłumacz, jeśli piszesz w języku nieskompilowanym). Kod jest zwykle zwykłym tekstem. Naprawdę, możesz napisać dowolny program, jaki można sobie wyobrazić, używając Notatnika Windows i kompilatora C. z linii poleceń.
Wielu programistów nawet nie używa IDE. Osobiście używałem Gedit (podstawowy edytor tekstowy systemu Linux z podświetlaniem składni) przez najdłuższy czas, zanim w końcu przełączyłem się na Eclipse.
W rzeczywistości nadal używam Gedit, gdy chcę napisać prosty program. Czasami nawet użyję nano, jeśli chcę wymyślić szybki skrypt, ponieważ jestem zbyt niecierpliwy, aby czekać na załadowanie IDE.
źródło
cat
w systemie Windows,more
oczywiście przy pierwszym użyciu. Oczywiście prawdziwi programiści używają motyli;) xkcd.com/378@Matt, to prostsze niż się wydaje. Spójrzmy na drugi film: Piszą program w języku Python. Python jest językiem interpretującym - co oznacza, że program napisany w Pythonie nie musi być kompilowany, wystarczy go zinterpretować, aby uruchomić.
Jeśli masz prosty edytor, jako notatnik (Windows) lub nano (linux), możesz napisać prosty plik tekstowy, nazwać go, powiedzmy
"program.py"
, i uruchomić interpretowany z wiersza poleceń, jak poniżej:Jeśli chcesz na przykład programować w Lua , możesz napisać prosty plik tekstowy o nazwie
"program.lua"
za pomocą notatnika lub nano i napisać pojedynczy wiersz w pliku tekstowym, jak poniżej:Następnie przejdź do wiersza polecenia (cmd w systemie Windows, terminal w systemie Linux) i uruchom polecenie:
Kluczowe pojęcia:
Mam nadzieję, że to pomaga.
źródło
Jezu, czuję się teraz stary i nigdy nie musiałem nawet zadzierać z kartami dziurkowania lub przetwarzaniem wsadowym. Do diabła, musiałem tylko raz lub dwa razy korzystać z terminala w trakcie mojej kariery w college'u.
Oto, jak zrobiliśmy to w późnej kredzie (około 1986 r.). Pracowałem nad VAX / VMS za pomocą terminalu VT220 w kolorze bursztynowym na czarnym, który może wyświetlać w formacie 80x24 lub 132x24.
Najpierw uruchomiłeś edytor tekstu:
EDT był odpowiednikiem vi systemu VMS, mieszcząc się gdzieś pomiędzy edlinem DOS a Notatnikiem. Wpisałeś tekst programu
zapisał go w pliku, a następnie zamknął edytor.
Następnie uruchomiłeś kod przez kompilator:
Przetłumaczyło to kod źródłowy w HELLO.C i wygenerowało plik obiektowy HELLO.OBJ. Plik obiektowy zawierał kod maszynowy programu, ale nie był jeszcze w formie wykonywalnej. Po pierwsze, rzeczywisty kod binarny dla
printf
połączenia nie jest obecny; jest tylko symbol zastępczy. Wciąż musiałeś uruchomić plik obiektowy przez linker , który włączył kod binarny ze standardowej biblioteki (i wszelkich innych bibliotek, których potrzebujesz) i sformatował plik, aby mógł zostać rozpoznany jako plik wykonywalny:Wynikiem tego kroku jest plik HELLO.EXE, który jest wykonywalną wersją Twojego programu.
Procedura jest prawie taka sama w każdym nowoczesnym systemie; po prostu poszczególne łańcuchy narzędzi są różne. Na przykład, sekwencja poleceń w typowym systemie Linux byłaby
lub
Odkąd dorastałem w tym środowisku, nigdy nie zrozumiałem, jak ktoś może potrzebować IDE tylko do napisania swojego kodu. Jednak na początku tego roku zacząłem pracować w Javie i chociaż Eclipse ma wiele, wiele wad, rozumiem, w jaki sposób ktoś może polegać na IDE, aby wykonać swoją pracę. Ponieważ Java jest tak ogromnym językiem w porównaniu do C, a ponieważ wciąż staram się obniżyć dokładniejsze punkty składni, pomaga mieć inteligentne środowisko programistyczne, które wie, w jakich pakietach są poszczególne typy i pomaga mi organizować importowanie.
źródło
Tak tak to jest.
Tak jak można zrobić kawę bez jednoczesnego spieniania mleka, jechać do pracy bez rozmowy przez telefon i płacenia podatków lub patrzeć na gwiazdy bez słuchania „lotu trzmiela” na systemie dźwięku przestrzennego, możliwe jest do kompilowania kodu bez uruchamiania edytora, debuggera, systemu analizy kodu i gry w węża.
Ale ... kto naprawdę chce w milczeniu patrzeć na gwiazdy ?!
źródło
Redaktor? Nie potrzebuję śmierdzącego edytora ani IDE do pisania kodu:
Jednak miło jest mieć coś do edycji pliku później. IDE (zintegrowane środowiska programistyczne) istniały o wiele dłużej niż wiele osób sugeruje w swoich odpowiedziach. Jedyne IDE, które naprawdę mi się podobało, to ten, który był dostarczany z Turbo C , który działał na DOS. To było jak tlen dla ludzi, którzy zostali zmuszeni do skakania z edlinem .
Próbowałem wielu różnych „pakietów” IDE na podstawie rekomendacji od znajomych, którzy nie mogli przestać zachwycać się tym, ile czasu oszczędzają i jak wygodnie wszystko robią. Za każdym razem, gdy siadam i próbuję użyć jednego, okazuje się, że walczę z nim bardziej niż z nim.
W większości korzystam z najprostszych edytorów tekstu. Moim ulubionym jest KATE, która pochodzi z KDE. Oto funkcje, które lubię:
Dzięki tym podstawowym funkcjom mam wrażenie, że jestem prawie rozpieszczony.
W rzeczywistości jestem mniej produktywny podczas pracy z bogatymi w funkcje IDE i jestem wdzięczny, że nigdy nie rozwinąłem zależności od jednego.
źródło
IDE nie jest kompilatorem, debuggerem ani czymkolwiek podobnym, jest w rzeczywistości interfejsem umożliwiającym dostęp do wszystkich tych programów, które są zwykle osobnymi programami. Za kulisami Visual Studio znajduje się kompilator, do którego można uzyskać dostęp jako osobny program, kompilujący swoje programy z wiersza polecenia, i prawdopodobnie jest też debugger, który jest również dostępny osobno itd. - Nie znam się zbytnio na jego infrastrukturze ponieważ go nie używam.
W zależności od tego, kogo zapytasz, IDE jest albo bardzo przydatne, albo przeszkadza. Zależy to również od tego, co piszesz, od jego rozmiaru, stylu kodowania i tak dalej. Ja, na przykład, naprawdę nie czuję potrzeby zbyt częstego używania IDE, ale uważam, że niektóre zadania lepiej sobie z tym radzą (lub, w zależności od tego, jak na to patrzysz, że jestem zbyt leniwy, aby pisać skrypty / makra dla nich osobiście).
źródło
To z pewnością jest. W pierwszym filmie chodzi o programowanie C. Aby pisać programy w C, potrzebujesz:
Ściśle mówiąc, nie potrzebujesz pliku, ale nie znam żadnego środowiska, które nie używa pliku dla C / C ++. Jako taki potrzebujesz edytora do edycji kodu źródłowego. Chociaż działa coś tak prostego jak notatnik, naprawdę chcesz czegoś bardziej skomplikowanego do kodowania (podświetlanie kodu, otwieranie wielu plików jednocześnie itp.).
Po drugie, potrzebujesz kompilatora (kod źródłowy -> kod obiektowy) i linkera (kod obiektu scalony razem + minimalna obsługa do uruchomienia programu).
Nawet w przypadku IDE większość zadań wykonanych za sceną można wykonać z wiersza poleceń: na przykład w Visual Studio IDE nadal używa plików i wywołuje kompilatory w wierszu poleceń, ale może działać w inny sposób ( i może robi to dla większej integracji).
Dlaczego więc nie użyć IDE? Niektóre osoby są dość analne na temat swojego edytora kodu, ponieważ naprawdę to wiedzą. Na przykład jestem dość produktywny dzięki edytorowi kodu vi. IDE są również ograniczone, jeśli musisz wchodzić w interakcje z rzeczami, dla których IDE nie zostało zaprojektowane. Istnieje tutaj kompromis, który zależy od umiejętności programisty, projektu, języków programowania / narzędzi itp. ... Niektóre języki nie mają nawet przyzwoitego IDE, niektóre inne są prawie bezużyteczne bez niego. Chociaż sam nie używam IDE, jednym z obszarów, który moim zdaniem jest bardzo przydatny, jest debugowanie integracji dla C i C ++.
źródło
printf '#include <stdio.h>\nint main() { printf("Hello, World\\n"); return 0; }' | tcc -run -
Z pewnością możesz pisać programy bez graficznego IDE. W przypadku języków skompilowanych (np. C lub C ++) proces przebiegałby mniej więcej tak:
W przypadku języków interpretowanych, takich jak PHP lub Python, piszesz kod w preferowanym edytorze tekstu (lub interaktywnej powłoce, takiej jak ten, w którym Python jest dostarczany), a kod jest wykonywany przez interpretowany program. Na przykład, aby wywołać skrypt w języku Python, uruchomisz coś takiego
python.exe myScript.py
.Python nie jest językiem czysto interpretowanym, ponieważ najpierw jest kompilowany, ale ta skompilowana forma jest uruchamiana przez interpreter Pythona, więc nadal pasuje do definicji. Inne języki, takie jak PHP, są całkowicie interpretowane.
źródło
Tak, możesz pisać kod bez kompilatora i bez IDE. Piszę tylko. Tekst.
źródło
Myślę, że masz na myśli zintegrowane środowisko programistyczne (IDE). Zapewniają między innymi podpowiedzi do kodu i podświetlanie składni. Kompilator po prostu pobiera pliki i kompiluje je w kod maszynowy lub kod bajtowy. Kompilator jest zwykle używany przez IDE, wysyłając mu polecenie kompilacji plików.
Można pisać bez kompilatora. Te języki używają „tłumacza” i przetwarzają skrypt w czasie wykonywania.
źródło
IDE udostępnia tylko kilka narzędzi w jednym wygodnym miejscu, a następnie automatyzuje niektóre procesy. Te narzędzia są ogólnie ...
Do napisania swojego źródła możesz użyć dowolnego edytora tekstu, który tworzy zwykły tekst, np. NotePad, Word lub specjalnie zaprojektowany edytor tekstu.
Gdy masz już swoje źródło w pliku tekstowym, możesz uruchomić kompilator za pomocą wiersza poleceń, przekazując plik testowy, np. Cc my_program.c Spowoduje to utworzenie pliku obiektowego, który możesz uruchomić.
Aby debugować program, uruchom debugger za pomocą wiersza poleceń przekazującego program, np. gdb my_program Możesz następnie ustawić punkty przerwania, przejść przez program, sprawdzić rzeczy itp.
W przypadku IDE wszystko to dzieje się po naciśnięciu jednego przycisku za kulisami, a IDE nakłada na to wymyślny interfejs użytkownika.
PS. Prawdziwi programiści używają wiersza polecenia
źródło
Piszę mój codzienny kod w edytorze vim (podstawowy edytor tekstowy) i mogę cię zapewnić, że działa płynnie (większość mojego kodu to PHP). Szczególnie dlatego, że mój programista env jest dystrybucją Linuksa dla deweloperów i korzystam z narzędzi powłoki. Tak programowałem już od roku i bardzo mi to pomogło w przypadku zdalnego wdrażania aplikacji i modyfikacji produkcji, w których ogólnie masz dostęp do konsoli * Nix przez ssh.
źródło
cyfrowe komputery z programami przechowywanymi są używane od lat 50. XX wieku, podczas gdy graficzne interfejsy użytkownika zaczęły pojawiać się dopiero pod koniec lat 60. XX wieku (a dla użytkowników końcowych w latach 80.). Ludzie musieli jakoś używać i programować komputery .
Chociaż zawiera pewne nieścisłości (nie interfejs użytkownika każdej platformy jest warstwą na szczycie systemu wiersza poleceń), prawdopodobnie powinieneś przeczytać krótki kawałek Neala Stephensona Na początku była linia poleceń .
Naprawdę sprawi, że zaczniesz myśleć o tym, co na twoim komputerze działa pod maską, o tym, jak „możliwe” jest programowanie bez IDE, wykonywanie prawdziwej pracy za pomocą wiersza poleceń i tak dalej.
źródło
Naprawdę potrzebujesz tylko edytora tekstu (piekło, notatnik będzie działał) i kompilatora / tłumacza (co ważniejsze).
Powiedziałeś coś o robieniu tego za pomocą wiersza poleceń? Gówno brzmi szalenie, ale jest bardzo możliwe. Mam na myśli tylko użycie wbudowanego w Windows wiersza polecenia, w którym można „zapisać” do pliku,
echo "some codez" > target_file.sauce
ale trzebaA) Bądź naprawdę dobry w tym, co robisz
B) Pisz prosty program
C) Szaleństwem
źródło
Naprawdę musisz pomyśleć, że IDE to po prostu edytor + kompilator + (jakiś rodzaj) Makefile + Debugger (czasami) + Graficzny interfejs użytkownika (czasami), więc oczywiście możesz zrezygnować z używania IDE i zastępujesz je z wybranym przez siebie edytorem (vim, emacs, gedit, notepad ++, [insert_others_here]), kompilatorem (jdk dla java, gcc, platformy SDK lub [insert_Cpp_toolchain_here] dla C ++, interpretera python lub dowolnego łańcucha narzędzi w twoim języku), jakiś plik makefile (jak narzędzia autoh ..., cmake, ant, maven itp.), jakiś debugger (który zwykle jest dołączony do kompilatora), a jeśli chcesz graficznego edytora interfejsu użytkownika (przychodzi na myśl polana) , a tam masz własne IDE bez IDE. To, które podejście jest najlepsze, zależy od ciebie (i myślę, że dzisiejsze IDE są nieco przereklamowane)
źródło
mruga
Używa pico, nano klon. Używam go od czasu do czasu. Zwykle używam emacsa, który jest nieco mniej pomocny, ale bardziej funkcjonalny.
Nie używam IDE jako ogólnej zasady. Czasami wpadałem na nie w celu debugowania lub ponieważ łańcuch narzędzi wiersza poleceń był trudny do znalezienia (patrząc na ciebie Xilinx). Używam ich również do szkicowania C # w rzadkich przypadkach, gdy robię GUI. Ale IDE nie są bardzo dobrymi edytorami z mojego doświadczenia: nieelastyczne, dziwne akordy znaków, niezbyt łatwe w użyciu, nie obsługiwane wiele języków, zajmują zbyt dużo pamięci.
Wolałbym używać emacsa.
Powinieneś zajrzeć do historii komputerów. Jest dość łatwo napisany i daje wspaniałe spojrzenie na naszą pracę.
źródło
Nie potrzebujesz nawet edytora tekstu. :) :)
Jeśli jesteś w systemie Windows, spróbuj tego:
Jeśli jesteś w systemie UNIX
A następnie po prostu skompiluj go za pomocą swojego ulubionego kompilatora wiersza poleceń. :)
Oczywiście za pierwszym razem musisz to napisać poprawnie.
Pamiętaj, że prawdziwi programiści używają motyli: http://xkcd.com/378/
źródło
Oto, co jest fajne: Harvard Extension School uczy programowania bez IDE ... chyba że telnet + pico jest tym, co rozumiesz przez IDE.
http://www.fas.harvard.edu/~libe50a/homework.html http://www.fas.harvard.edu/~libe50a/faq.html http://www.fas.harvard.edu/~libe50a /java.html
Jeśli mnie zapytasz, torturują dzieci, ale to jest w porządku. Jest więcej Spartan, nie mówiąc już o Mothakes, Perioikoi i Helot, niż Harvard może przyznać w danym roku.
Tak to mozliwe. Przypuszczam, że coś takiego jak Notatnik nie jest IDE, ale emacs i Textpad (używałem obu do C, zajęć Java) są uważane za IDE. Teraz ... po zakodowaniu w C # w VS2010, z WinForms i wszystkim, nie chciałbym wracać do edytorów tekstu w pracy - byłbym krzyczony za to, że nie zrobiłem badziewia.
Jednak w przypadku projektów akademickich, gdy przykłady są małe, sensowne jest nie używanie IDE. Pamiętaj: na zajęciach z programowania wstępnego nie ma wielu rzeczywistych problemów. Prawdopodobnie nie będziesz musiał dodawać plików .xml jako zasobów do biblioteki dll; Prawdopodobnie nie musiałbyś dużo debugować, nie musiałbyś używać kontraktów kodowych ani przechodzić z niezarządzanego C ++ do C ++ / ClI, a następnie do C # iz powrotem. Zadania akademickie nie muszą być nieporządne, ponieważ można je wykonać od zera i są mierzone w osobodni / tygodniach. Wszystkie pliki mogą być częścią tylko jednego projektu (nawet dla kompilatorów lub klasy systemu operacyjnego). IDE, takie jak Visual Studio, może faktycznie przeszkadzać, gdy zrobi to prosty plik makefile. Pomyśl o niezliczonych opcjach, które należy skonfigurować. To samo z Eclipse - jest to przerobiony edytor, który można dowolnie dostosowywać. Prosty plik makefile i dwa proste pliki C mogą być wszystkim, czego potrzebujesz. W rzeczywistości masz większą kontrolę w ten sposób, gdy sam określasz każdą flagę. Kodowałem kiedyś tak w laboratorium uniwersyteckim. To zabawne, ale jeden z „osadzonych” (co oznacza, że musiał być tak mały, że zmieściłby się w samolocie) komputerów, które nie miały GUI i myszy :) Wciąż mogłem się zalogować, edytować, kompilować i debuguj program w C, a także dodaj sterowniki i ponownie skompiluj jądro.
źródło
Do pracy z bazą danych potrzebujesz tylko edytora tekstu (notepad ++) i klienta wiersza poleceń, takiego jak osql lub sqlcmd. Nawet kompilator.
źródło
Jest to nie tylko możliwe , ale - przynajmniej raz w życiu - ty musisz zrobić programowania bez IDE. Pomoże ci zrozumieć proces kompilacji, korzystanie z bibliotek - może to otworzy ci oczy, co tak naprawdę oznacza programowanie.
Myślę też, że dobry edytor tekstu jest lepszy niż IDE. W przypadku MS-Windows polecam PSPad (to była tak mocna pamięć flash, jak MultiEdit w erze MS-DOS), w GNU / Linux wypróbuj Geany (może to repozytorium twojej dystrybucji).
źródło
Używam 99-centowego notebooka z moim zaufanym długopisem żelowym Pilot do pisania programów.
Po prostu ponownie wpisuję kod do Visual Studio.
Pisanie programu i kodowanie to dwie różne rzeczy (dla mnie).
źródło
Programowanie bez IDE to świetny sposób, aby dowiedzieć się, co się dzieje.
Programowanie rozpoczęliśmy w szkole od prostego edytora tekstu w kolorze składni. Kompilacja odbyła się za pomocą wiersza polecenia (lub prostego skryptu wsadowego).
Dopiero gdy zrozumieliśmy podstawy programowania, przeszliśmy do bardziej wydajnych edytorów, takich jak Eclipse lub Visual Studio.
źródło
Zgodnie z oczekiwaniami wszystkie odpowiedzi mówią to samo: „oczywiście możesz! To tylko tekst! Tekst tekst tekst tekst!” Zasadniczo jest to prawda i jest najlepszą odpowiedzią na twoje pytanie. Większość IDE po prostu manipuluje tekstem.
Ale nie zawsze jest to prawdą, aw niektórych przypadkach odejście od modelu tekstowego powoduje ogromne postępy. Te postępy są zwykle odrzucane przez purystów tekstowych (co jest najbardziej powszechne, ponieważ to, jak było, jest również, jak powinno być ... czy to nie przypadek ?!). IBM Visual Age był jednym naprawdę fajnym przykładem, który umarł straszną śmiercią.
Innym przykładem, który przychodzi mi na myśl, który kopie tyłek i jest bardzo popularny, jest Konstruktor interfejsów do tworzenia produktów Mac i iOS. Jego wynikiem nie są programy tekstowe, lecz obiekty szeregowane, więc nie można tworzyć NIB bez użycia IB lub pisania własnego IB.
Puryści powiedzą „tak, ale Konstruktor interfejsów jest napisany w kodzie tekstowym!” Więc?
Naprawdę wierzę, że CS jako pole znacznie by się rozwinęło, gdybyśmy mogli wyjść poza paradygmat tekstowy. Poza tym myślę, że ostatecznie pójdziemy w tym kierunku, ale zajmie to dekady. Najpierw musimy dowiedzieć się, co jest lepsze,
vi
lubemacs
...źródło
Ostatnio zaktualizowałem do vima. Podoba mi się, jak wyróżnia słowa kluczowe w dowolnym języku, który piszę. Westchnienie, tylko kiedy mogę dostać się do prawdziwego systemu operacyjnego i nie używać notatnika.
Moja żona napisała COBOL za pomocą edlina. Myślałem, że to całkiem zabawne.
Takie ulepszenie w porównaniu z kartami klawiszy, których używaliśmy, i 24-godzinny zwrot z operacji, aby odkryć, że mamy literówkę.
Mam gdzieś na strychu formularze kodujące.
Miałeś 1 i 0? Musieliśmy narysować linię przez nasze zero.
Ale mówcie to dzisiejszym młodym ludziom, a oni wam nie uwierzą.
jot.
źródło