Viết chương trình không có IDE đồ họa


18

Tôi không chắc liệu điều này có khả thi hay không nhưng tôi đã xem một vài video với các ví dụ lập trình trong đó có vẻ như chương trình đang được viết bằng một loại dấu nhắc lệnh thay vì một IDE đồ họa đẹp. Tôi chỉ tò mò về những gì có thể xảy ra trong những video này. Có thể viết một chương trình mà không có IDE không?

đây là hai ví dụ: http://www.youtube.com/watch?v=hFSY9cWjO8o (@ 6 phút) http://www.youtube.com/watch?v=tKTZoB2Vjuk (@ 5 phút)

Bất cứ ai có thể giải thích làm thế nào được thực hiện?

Cảm ơn tất cả các bạn đã phản hồi tuyệt vời!


48
Rõ ràng bạn có thể viết một chương trình mà không cần IDE. Bạn nghĩ IDE đầu tiên được viết như thế nào?
Charles Salvia

34
Bọn nhóc thời nay! Hãy nghĩ rằng họ không thể viết chương trình mà không có IDE ưa thích! Tại sao, vào thời của tôi, chúng tôi phải tự biên dịch mã máy, đi lên dốc cả hai chiều trong tuyết ...
JSB

33
Câu hỏi này làm tôi buồn. Thậm chí nhiều hơn những người bình thường cho rằng phần mềm và phần cứng là một thứ gì đó kỳ diệu - bạn là một lập trình viên, bạn nên biết rõ hơn! (Và để ghi lại, tôi có thể tính là trẻ con đối với những người đã sử dụng mã máy.)

10
Nó không phải là một dòng lệnh, nó là một trình soạn thảo văn bản dựa trên thiết bị đầu cuối. Hai trong số các trình soạn thảo văn bản phổ biến nhất, vi và emacs chạy trong các thiết bị đầu cuối. (Và GUI cũng vậy, ngày nay).
Lennart Regebro

4
@ jas- cảm ơn vì nhận xét mang tính xây dựng và sâu sắc.
Matt

Câu trả lời:


22

Tất cả những gì bạn cần để viết chương trình là trình soạn thảo văn bản và trình biên dịch (hoặc trình thông dịch nếu bạn đang viết bằng ngôn ngữ không được biên dịch). Mã thường chỉ là văn bản đơn giản. Thực sự, bạn có thể viết bất kỳ chương trình nào có thể tưởng tượng được bằng Windows Notepad và trình biên dịch C dòng lệnh.

Nhiều lập trình viên thậm chí không sử dụng IDE. Cá nhân tôi đã sử dụng Gedit (một trình soạn thảo văn bản Linux cơ bản với cú pháp tô sáng) trong thời gian dài nhất trước khi cuối cùng tôi chuyển sang Eclipse.

Trên thực tế, tôi vẫn sử dụng Gedit khi tôi muốn viết một chương trình đơn giản. Đôi khi, tôi thậm chí sẽ chỉ sử dụng nano nếu tôi muốn tạo ra một kịch bản nhanh, bởi vì tôi quá nôn nóng để chờ đợi một IDE tải.


2
Tôi là một fan hâm mộ lớn của Gedit và KATE. Tôi sử dụng Nano khi tôi chỉnh sửa mã từ xa.
Tim Post

8
Tôi thích Notepad ++. :)
Mateen Ulhaq

+1 của tôi thành nano và vi!
crodjer

4
Trong thực tế, bạn thậm chí không cần một trình soạn thảo văn bản. Trong UNIX, bạn có thể viết mã bằng catWindows và more rõ ràng bạn phải viết mã ngay lần đầu tiên. Tất nhiên, các lập trình viên thực sử dụng bướm;) xkcd.com/378
OscarRyz

1
@OscarRyz - "'tất nhiên có một lệnh emac cho điều đó." +1 cho Notepad ++ mặc dù
Jetti

11

@Matt, nó đơn giản hơn vẻ ngoài của nó. Chúng ta hãy xem video thứ hai: Họ đang viết một chương trình trăn. Python là một ngôn ngữ được thông dịch - có nghĩa là một chương trình được viết bằng python không cần phải được biên dịch, nó chỉ cần được giải thích để chạy.

Nếu bạn có một trình soạn thảo đơn giản, như notepad (windows) hoặc nano (linux), bạn có thể viết một tệp văn bản đơn giản, đặt tên cho nó, giả sử "program.py", và chạy phiên dịch từ dòng lệnh, như dưới đây:

python program.py

Nếu bạn muốn lập trình trong Lua chẳng hạn, bạn có thể viết một tệp văn bản đơn giản có tên "program.lua"bằng notepad hoặc nano và viết một dòng trên tệp văn bản của bạn như dưới đây:

print("my first program in lua")

Sau đó đi đến dấu nhắc lệnh (cmd trên windows, terminal trong linux) và chạy lệnh:

lua program.lua

Các khái niệm chính:

  • Một chương trình thô là một tệp văn bản. Tất cả những gì bạn thực sự cần để viết một chương trình là một trình soạn thảo văn bản;
  • Nếu lựa chọn ngôn ngữ của bạn là một phiên dịch, bạn sẽ cần trình thông dịch để chạy chương trình của bạn (Lua, Basic, Python, v.v.). Trình thông dịch này phải được cài đặt trên máy tính của bạn;
  • Nếu lựa chọn ngôn ngữ của bạn là một ngôn ngữ được biên dịch, bạn sẽ cần một chuỗi công cụ được cài đặt (chủ yếu là trình biên dịch và trình liên kết) để dịch mã nguồn của bạn sang mã nhị phân có thể hiểu và có thể chạy được. Mỗi ngôn ngữ (C, Java, C ++, C #, VB.Net, v.v.) có chuỗi công cụ riêng.

Mong rằng sẽ giúp.


4
Notepad ++ tốt hơn nhiều cho việc tô sáng cú pháp! Và đừng quên EMACS: D
K-RAN

Haskell là một ngôn ngữ được biên dịch (cũng có một trình thông dịch).
jsternberg

Tôi thấy Notepad2 (hoặc Notepad2-Mod thay thế) tốt hơn Notepad ++. ; P code.google.com/p/notepad2-mod
Spoike

@jsternberg, cảm ơn bạn đã đóng góp cho Haskell ... Tôi thực sự không biết ngôn ngữ quá tốt để nói.
Machado

1
@ K-RAN: Tất cả những gì tôi sử dụng là Emacs, trừ khi tôi đang sử dụng XCode để lập trình iPhone. Với TRAMP thì không thể ngăn cản!
Josh

10

Chúa ơi, bây giờ tôi cảm thấy già và tôi thậm chí không bao giờ phải lộn xộn với thẻ đục lỗ hoặc xử lý hàng loạt. Chết tiệt, tôi chỉ phải sử dụng thiết bị đầu cuối cứng một hoặc hai lần trong suốt sự nghiệp đại học của mình.

Đây là cách chúng tôi đã làm mọi thứ trở lại vào cuối kỷ Phấn trắng (khoảng năm 1986). Tôi đã làm việc trên VAX / VMS thông qua thiết bị đầu cuối dựa trên ký tự màu hổ phách VT220 có thể hiển thị ở cả 80x24 hoặc 132x24.

Đầu tiên, bạn kích hoạt trình soạn thảo văn bản:

$ EDIT/EDT HELLO.C

EDT là VMS tương đương với vi, nằm ở đâu đó trong khả năng giữa DOS edlin và Notepad. Bạn đã gõ vào văn bản chương trình của bạn

#include <stdio.h>

int main(void)
{
  printf("Hello, Stupid\n");
  return 0;
}

lưu nó vào tập tin, và sau đó thoát khỏi trình soạn thảo.

Sau đó, bạn chạy mã của mình thông qua trình biên dịch:

$ CC HELLO

Điều này đã dịch mã nguồn trong HELLO.C và tạo tệp đối tượng HELLO.OBJ. Tệp đối tượng chứa mã máy cho chương trình, nhưng nó chưa ở dạng thực thi được. Đối với một điều, mã nhị phân thực tế cho printfcuộc gọi không có mặt; chỉ có một giữ chỗ cho nó. Bạn vẫn phải chạy tệp đối tượng thông qua một trình liên kết , kết hợp mã nhị phân từ thư viện chuẩn (và bất kỳ thư viện nào khác bạn cần) và định dạng tệp để có thể nhận ra tệp đó là tệp thực thi:

$ LINK HELLO

Kết quả của bước này là tệp HELLO.EXE, đây là phiên bản thực thi của chương trình của bạn.

Các thủ tục khá giống nhau trên bất kỳ hệ thống hiện đại nào; chỉ là các công cụ cụ thể là khác nhau. Ví dụ: chuỗi các lệnh trên một hệ thống Linux điển hình sẽ là

$ vi hello.c
$ gcc -o hello hello.c 

hoặc là

$ vi hello.c
$ gcc -c hello.c 
$ ld -o hello hello.o -lc

Vì tôi lớn lên trong môi trường này, tôi không bao giờ hiểu làm thế nào ai đó có thể cần một IDE chỉ để viết mã của họ. Tuy nhiên, đầu năm nay tôi đã bắt đầu làm việc với Java và trong khi Eclipse có rất nhiều lỗi, tôi có thể hiểu làm thế nào một người nào đó có thể dựa nhiều vào IDE để hoàn thành công việc của họ. Do ngôn ngữ khổng lồ của Java so với C và vì tôi vẫn đang cố gắng giảm các điểm cú pháp tốt hơn, nên nó có một môi trường phát triển thông minh để biết các loại gói cụ thể đang ở trong và giúp tôi tổ chức nhập khẩu.


Tôi rất tiếc vì bạn đã tiếp xúc với (V) omit (M) aking (S) ystem ở độ tuổi trẻ và ấn tượng như vậy. Tôi hy vọng nó không dẫn đến bất kỳ hậu quả lâu dài nào ...
Tim Post

2
@Tim Post: Bạn đang đùa à? Đối với tôi, đó là những khoảng thời gian tốt đẹp ; kể từ đó đã xuống dốc.
John Bode

có lẽ tôi nghe hơi đắng. Tuy nhiên, để bảo vệ tôi, tôi người phải liên tục kết nối một mạng 3270 rất đặc biệt do Novell điều khiển qua vòng token. Tôi vẫn còn nigtmares từ đó, mặc dù nhiều năm trị liệu.
Tim Post

Đánh vần thú vị của "Thế giới".

6

Vâng vâng nó là.

Cũng giống như bạn có thể pha cà phê mà không cần pha sữa, lái xe đi làm mà không cần nói chuyện điện thoại và đóng thuế, hay nhìn chằm chằm vào các ngôi sao mà không cần nghe "chuyến bay của ong nghệ" trên hệ thống âm thanh vòm. để biên dịch mã mà không cần chạy trình soạn thảo, trình gỡ lỗi, hệ thống phân tích mã và trò chơi con rắn.

Nhưng ... ai thực sự muốn ngắm sao trong im lặng ?!


1
Bạn có sẵn lòng giải thích như thế nào không?
Matt

1
@Matt: một chương trình cho mỗi tác vụ ... Viết mã trong trình chỉnh sửa , biên dịch nó bằng trình biên dịch , gỡ lỗi bằng trình gỡ lỗi , nghỉ và chơi rắn .
Shog9

2
-1 Tôi không nghĩ rằng điều này mang tính xây dựng.
Sixty feetersdude

1
+1, nó không phá hoại, nó chỉ là một phép ẩn dụ . Đừng sợ sự hài hước.
ern0

6

Biên tập viên? Tôi không cần trình soạn thảo hay IDE hôi thối để viết mã:

cat << EOF > hello.c
/* This IS an example of writing code from the command line */
#include <stdio.h>

int main(void)
{
    puts("Hello, World!");
    return 0;
}

EOF

Tuy nhiên, thật tuyệt khi có một cái gì đó để chỉnh sửa tập tin sau này. IDE (môi trường phát triển tích hợp) đã tồn tại lâu hơn rất nhiều so với nhiều người đang đề xuất trong câu trả lời của họ. IDE duy nhất tôi từng thực sự thích là cái đi kèm với Turbo C , chạy trên DOS. Nó giống như oxy đối với những người bị buộc phải làm quen với edlin .

Tôi đã thử nhiều bộ IDE khác nhau trên các đề xuất từ ​​những người bạn không thể ngừng nói về việc họ tiết kiệm được bao nhiêu thời gian và họ làm mọi thứ thuận tiện như thế nào. Mỗi lần tôi ngồi thử và sử dụng nó, tôi thấy rằng tôi chiến đấu với nó nhiều hơn là sử dụng nó.

Đối với hầu hết các phần, tôi chỉ sử dụng các trình soạn thảo văn bản đơn giản nhất. Yêu thích của tôi là KATE, đi kèm với KDE. Đây là những tính năng mà tôi thích:

  • Cú pháp tô sáng tuyệt vời
  • Mã gấp
  • Tìm kiếm / thay thế dựa trên regex đơn giản
  • Cửa sổ vỏ nội tuyến
  • Cửa sổ trình biên dịch nội tuyến / cửa sổ gỡ lỗi
  • Bộ sưu tập đoạn trích
  • Biểu tượng người xem
  • Dấu chân bộ nhớ cực kỳ nhẹ (một số dự án của tôi có hàng trăm tệp nguồn)
  • Dễ dàng tab / chia cửa sổ
  • Các phiên đơn giản thay vì các 'dự án' phức tạp
  • (Semi) kiến ​​trúc trình cắm thêm đơn giản

Chỉ với những tính năng cơ bản đó, tôi cảm thấy mình gần như hư hỏng.

Tôi thực sự kém năng suất hơn khi làm việc với các IDE giàu tính năng và rất may là tôi không bao giờ phát triển sự phụ thuộc vào một IDE.


Đối với bản ghi, hầu hết các tính năng bạn đề cập đều có sẵn trong bất kỳ trình soạn thảo văn bản nào của lập trình viên hiện đại, không chỉ IDE.
Xiong Chiamiov

Ghét phải phá vỡ nó cho bạn, nhưng những tính năng này là thứ tạo nên một IDE.
devshorts

4

IDE không phải là trình biên dịch, trình gỡ lỗi hay bất cứ thứ gì tương tự, nó thực sự là một giao diện người dùng cho phép bạn truy cập tất cả các chương trình này, thường là các chương trình riêng biệt. Đằng sau hậu trường của Visual Studio có một trình biên dịch mà bạn có thể truy cập như một chương trình riêng biệt, biên dịch các chương trình của bạn từ Dấu nhắc lệnh và có thể có một trình gỡ lỗi cũng có thể truy cập riêng và v.v. - Tôi không quá quen thuộc với cơ sở hạ tầng của nó bởi vì tôi không sử dụng nó

Tùy thuộc vào người bạn hỏi, một IDE rất hữu ích hoặc nó có xu hướng cản trở bạn. Nó cũng phụ thuộc vào những gì bạn đang viết, vào kích thước của nó, phong cách mã hóa của bạn và vân vân. Tôi, đối với một người, thực sự không cảm thấy cần phải sử dụng IDE quá nhiều, nhưng tôi cho rằng một số tác vụ được xử lý tốt hơn bởi nó (hoặc, tùy thuộc vào cách bạn nhìn vào nó, rằng tôi quá lười để viết các tập lệnh / macro cho những người đó).


3

Nó chắc chắn là như vậy. Trong video đầu tiên, đó là về lập trình C. Để viết chương trình C, bạn cần có những điều sau đây:

  • một số loại tệp nguồn nơi mã được ghi vào
  • một chuỗi công cụ để chuyển đổi tệp nguồn này thành tệp nhị phân, đó là điều duy nhất mà CPU có thể hiểu được cuối cùng.

Nói đúng ra, bạn không cần tệp, nhưng tôi không biết bất kỳ môi trường nào không sử dụng tệp cho C / C ++. Như vậy, bạn cần một trình soạn thảo để chỉnh sửa mã nguồn. Mặc dù một cái gì đó đơn giản như notepad hoạt động, bạn thực sự muốn một cái gì đó phức tạp hơn để thực hiện mã hóa (tô sáng mã, mở nhiều tệp cùng một lúc, v.v ...).

Đối với điểm thứ hai, bạn cần một trình biên dịch (mã nguồn -> mã đối tượng) và một trình liên kết (mã đối tượng được hợp nhất với nhau + hỗ trợ tối thiểu để bắt đầu chương trình).

Ngay cả với IDE, hầu hết các tác vụ được thực hiện phía sau cảnh có thể được thực hiện từ dòng lệnh: ví dụ: trong phòng thu trực quan, IDE vẫn sử dụng tệp và gọi trình biên dịch tại dòng lệnh cho bạn, nhưng nó có thể hoạt động theo cách khác ( và có thể làm cho tích hợp nhiều hơn).

Vậy tại sao không sử dụng IDE? Một số người khá hậu môn về trình soạn thảo mã của họ, bởi vì họ thực sự biết điều đó. Ví dụ, tôi khá năng suất với trình soạn thảo mã vi. IDE cũng bị giới hạn nếu bạn cần tương tác với những thứ mà IDE chưa được thiết kế. Có một sự đánh đổi ở đây phụ thuộc vào khả năng lập trình, dự án, ngôn ngữ / công cụ lập trình, v.v ... Một số ngôn ngữ thậm chí không có IDE tốt, một số ngôn ngữ khác gần như không thể sử dụng được nếu không có. Mặc dù tôi không sử dụng IDE cho mình, một lĩnh vực mà tôi nghĩ rằng chúng rất hữu ích là gỡ lỗi tích hợp cho C và C ++.


Tôi đã sử dụng notepad để học lập trình trong Java. Tôi đã nhận Crimson Editor và sử dụng gedit trên Linux ngay sau đó, nhưng đã không chạm vào IDE cho đến khi có lẽ 2 năm sau lần đầu tiên chọn nó. Công việc hiện tại của tôi là một lập trình viên Java.
Michael K

vâng, java là một ví dụ điển hình nơi tôi hiếm khi gặp những người không sử dụng IDE. Ngôn ngữ chỉ là một yếu tố: tên miền, kích thước, "văn hóa" tất cả các yếu tố. Tôi hiếm khi sử dụng IDE (hiện tại tôi chủ yếu làm python và C, và tôi chưa thấy IDE python phong nha).
David Cournapeau

bạn có thể sử dụng tcc để biên dịch / chạy các chương trình C mà không cần tạo tệp:printf '#include <stdio.h>\nint main() { printf("Hello, World\\n"); return 0; }' | tcc -run -
lập trình viên

2

Bạn chắc chắn có thể viết chương trình mà không cần IDE đồ họa. Đối với các ngôn ngữ được biên dịch (ví dụ C hoặc C ++), quy trình sẽ diễn ra như sau:

  1. Viết chương trình trong trình soạn thảo văn bản ưa thích của bạn.
  2. Từ dòng lệnh, gọi trình biên dịch và / hoặc trình liên kết sẽ chuyển đổi chương trình của bạn thành mã máy thực thi và kéo vào các thư viện bên ngoài cần thiết. (Tôi hơi mơ hồ về thứ tự liên kết và biên dịch ở đây, nhưng tôi chắc chắn rằng ai đó sẽ sửa tôi ngay lập tức. :))

Đối với các ngôn ngữ được thông dịch như PHP hoặc Python, bạn viết mã trong trình soạn thảo văn bản ưa thích của mình (hoặc trình bao tương tác giống như Python đi kèm) và mã được thực thi bởi một chương trình được dịch. Ví dụ: để gọi tập lệnh Python, bạn sẽ chạy một cái gì đó nhưpython.exe myScript.py .

Python không phải là ngôn ngữ được dịch hoàn toàn, vì nó được biên dịch trước, nhưng dạng được biên dịch đó được chạy bởi trình thông dịch Python, vì vậy nó vẫn phù hợp với định nghĩa. Các ngôn ngữ khác như PHP hoàn toàn được giải thích.


1

Có, bạn có thể viết mã mà không cần trình biên dịch và không có IDE. Tất cả nó là viết. Bản văn.


2
Bạn có sẵn lòng giải thích như thế nào không?
Matt

7
Bạn gõ trên bàn phím của bạn.
Matthew đọc

Matthew có nghĩa là, bạn có thể viết chương trình, nhưng không sử dụng. :)
Abimaran Kugathasan

2
@Abimaran Tôi không chắc chắn 100% ý của bạn là gì, nhưng bạn chắc chắn có thể chạy / sử dụng chương trình mà không cần trình biên dịch hoặc IDE. Ngôn ngữ có thể được giải thích, không chỉ biên dịch.
Matthew đọc

1
@Michael Tôi phải không đồng ý. Nó không được giải thích nhiều hơn động cơ phân tích giải thích vị trí của các bánh răng của nó.
Matthew đọc

1

Tôi nghĩ rằng bạn đang đề cập đến Môi trường phát triển tích hợp (IDE). Họ cung cấp gợi ý mã và đánh dấu cú pháp trong số những thứ khác. Một trình biên dịch chỉ lấy các tệp và biên dịch chúng thành mã máy hoặc mã byte. Một trình biên dịch thường được IDE sử dụng bằng cách gửi cho nó một lệnh để biên dịch các tệp của bạn.

Có thể viết mà không cần trình biên dịch. Các ngôn ngữ này sử dụng 'trình thông dịch' và xử lý tập lệnh trong thời gian chạy.


1
Bạn có sẵn lòng giải thích như thế nào không?
Matt

Hoặc bạn có thể lập trình nhị phân :)
Michael K

hoặc sử dụng CIL ..: P Matt từ các video tôi thấy bạn có thể cài đặt một cái gì đó như BASIC và nhập và chạy các câu lệnh thông qua dòng lệnh
Ross

1

Tất cả một IDE làm là cung cấp một số công cụ ở một nơi thuận tiện duy nhất và sau đó tự động hóa một số quy trình. Những công cụ đó nói chung là ...

  • Một trình soạn thảo văn bản
  • Một trình biên dịch
  • Trình gỡ lỗi
  • Một người xem tài liệu

Để viết nguồn của bạn, bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào tạo ra văn bản thuần túy, vd. NotePad, Word hoặc một trình soạn thảo văn bản mã được xây dựng có mục đích.

Khi bạn có nguồn của mình trong một tệp văn bản, sau đó bạn có thể khởi chạy trình biên dịch của mình thông qua dòng lệnh truyền vào tệp thử nghiệm của mình, ví dụ cc my_program.c Điều này sẽ tạo ra một tệp đối tượng mà bạn có thể thực thi.

Để gỡ lỗi chương trình của bạn, bạn khởi chạy trình gỡ lỗi của mình thông qua dòng lệnh truyền trong chương trình của bạn, vd. gdb my_program Sau đó, bạn có thể đặt điểm dừng, bước qua chương trình của mình, kiểm tra nội dung, v.v.

Với một IDE tất cả điều này xảy ra với một nút bấm phía sau hậu trường và IDE đặt một giao diện người dùng lạ mắt lên trên tất cả.

Tái bút Lập trình viên thực sự sử dụng dòng lệnh


2
Các lập trình viên thực sự sử dụng thẻ đục lỗ và xây dựng CPU của riêng họ từ các bóng bán dẫn tiền MOS MOS. Họ cũng chơi cờ với những mảnh làm bằng bê tông và nặng ít nhất 25 pound mỗi chiếc.
Công việc

1
@Job, bóng bán dẫn là cho những kẻ yếu đuối, thỏa thuận thực sự là: en.wikipedia.org/wiki/Vacuum_tube
Machado

Tôi nghĩ rằng chúng tôi là những kẻ yếu đuối và không thể nhấc một con chuột, ít hơn một quân cờ.
Michael K

2
Các lập trình viên thực sự sử dụng kim từ tính và một bàn tay ổn định. xkcd.com/378
Goran Jovic

1

Tôi viết mã hàng ngày của mình trong một trình soạn thảo vim (trình soạn thảo văn bản cơ bản) và tôi có thể chắc chắn với bạn rằng nó diễn ra suôn sẻ (hầu hết mã của tôi là PHP). Đặc biệt nguyên nhân khiến dev env của tôi là một bản phân phối Linux cơ sở và tôi tận dụng khá nhiều công cụ shell. Tôi đã lập trình như thế này được một năm nay và điều này đã giúp tôi rất nhiều khi xử lý các sửa đổi sản xuất và triển khai ứng dụng từ xa nơi bạn thường có quyền truy cập vào bảng điều khiển * Nix thông qua ssh.


1

máy tính chương trình lưu trữ kỹ thuật số đã được sử dụng từ những năm 1950, trong khi giao diện người dùng đồ họa thực sự chỉ bắt đầu xuất hiện vào cuối những năm 1960 (và cho người dùng cuối vào những năm 1980). Mọi người phải sử dụng - và lập trình - máy tính bằng cách nào đó trước đó.

Mặc dù nó chứa một số điểm không chính xác (không phải giao diện người dùng của mọi nền tảng là một lớp trên hệ thống dòng lệnh), bạn có lẽ nên đọc đoạn ngắn của Neal Stephenson trong Khởi đầu là Dòng lệnh .

Nó thực sự sẽ khiến bạn suy nghĩ về những thứ trên máy tính của bạn hoạt động dưới mui xe và làm thế nào "có thể" để lập trình mà không có IDE, hoàn thành công việc thực sự với một dòng lệnh, v.v.


1

Bạn thực sự chỉ cần một trình soạn thảo văn bản (địa ngục, notepad sẽ hoạt động) và trình biên dịch / trình thông dịch (điều quan trọng hơn).

Bạn nói gì về việc thực hiện nó thông qua dòng lệnh? Chết tiệt nghe có vẻ điên rồ, nhưng nó rất có thể. Ý tôi là chỉ cần sử dụng Windows được tích hợp trong dấu nhắc lệnh mà bạn 'có thể' ghi vào một tệp thông qua echo "some codez" > target_file.saucenhưng bạn sẽ phải

A) Hãy thực sự giỏi trong những gì bạn đang làm

B) Viết một chương trình đơn giản

C) Trở nên điên


1
... Hoặc cố gắng gây ấn tượng với ai đó.
Michael K

Hoặc bạn đang cố gắng khôi phục một cái gì đó từ một hệ thống rất nặng nề và bạn không có thời gian để thay thế màn hình. Đã từng trải qua rồi.
mu quá ngắn

1

Bạn thực sự cần phải nghĩ rằng IDE chỉ là Trình chỉnh sửa + Trình biên dịch + (một số loại) Makefile + Trình gỡ lỗi (đôi khi) + Trình tạo giao diện người dùng đồ họa (đôi khi) vì vậy tất nhiên bạn có thể chọn không sử dụng IDE, và bạn thay thế chúng với Trình chỉnh sửa mà bạn chọn (vim, emacs, gedit, notepad ++, [insert_others_here]), trình biên dịch (jdk cho java, gcc, SDK nền tảng hoặc [insert_Cpp_toolchain_here] cho C ++, trình thông dịch python hoặc bất kỳ công cụ ngôn ngữ nào của bạn), một số loại makefile (như autoh ... tools, cmake, ant, maven, v.v.), một loại trình gỡ lỗi (thường được bao gồm trong trình biên dịch) và nếu bạn muốn một trình xây dựng đồ họa ui (glade xuất hiện trong tâm trí) và ở đó bạn có IDE của riêng bạn mà không cần IDE. Cách tiếp cận nào là tốt nhất phụ thuộc vào bạn (và tôi nghĩ rằng IDE ngày nay được đánh giá quá cao)


1

chớp mắt

Anh ta đang sử dụng pico, một bản sao nano. Tôi sử dụng nó đôi khi. Thông thường tôi sử dụng emacs, nó hơi ít hữu ích, nhưng đặc trưng hơn.

Tôi không sử dụng IDE làm quy tắc. Thỉnh thoảng tôi đã rơi vào chúng để gỡ lỗi hoặc vì chuỗi công cụ dòng lệnh là một nỗi đau để tìm (nhìn vào bạn Xilinx). Tôi cũng sử dụng chúng để phác thảo C # trong trường hợp hiếm hoi khi tôi làm GUI. Nhưng IDE không phải là trình soạn thảo rất tốt theo kinh nghiệm của tôi: hợp âm nhân vật không linh hoạt, kỳ quặc, không dễ sử dụng, không hỗ trợ nhiều ngôn ngữ, chiếm quá nhiều bộ nhớ.

Tôi muốn sử dụng emacs.

Bạn nên nhìn vào lịch sử của máy tính. Nó được viết khá dễ tiếp cận và sẽ cho bạn một viễn cảnh tuyệt vời về công việc của chúng tôi.


1

Bạn thậm chí không cần một trình soạn thảo văn bản. :) :)

Nếu bạn đang ở trong cửa sổ hãy thử điều này:

more > hello.c 
#include <stdio.h>

main()
{
   printf ("Hello World!\n");
}
Ctrl-C

Nếu bạn ở UNIX

cat > hello.c <<. 
#include <stdio.h>

main()
{
   printf ("Hello World!\n");
}
.

Và sau đó chỉ cần biên dịch nó với trình biên dịch dòng lệnh yêu thích của bạn. :)

Rõ ràng bạn phải viết nó ngay lần đầu tiên.

Hãy nhớ rằng các lập trình viên thực sự sử dụng bướm: http://xkcd.com/378/


0

Đây là điều thú vị: Trường khuyến nông Harvard đang dạy lập trình không có IDE ... trừ khi telnet + pico là ý nghĩa của IDE.

Cách dễ nhất là sử dụng trình soạn thảo văn bản cơ bản để viết chương trình Java của bạn, sau đó chuyển tệp sang hệ thống FAS bằng chương trình FTP, kết nối qua telnet và biên dịch và chạy chúng trên FAS (fas.harvard.edu - Java đã được cài đặt ở đó). Họ PHẢI có mặt trên FAS để gửi chúng cho bài tập về nhà của bạn. Để sử dụng phương pháp này, bạn có thể muốn tìm hiểu đủ về một trong các trình soạn thảo văn bản Unix để có thể thực hiện bất kỳ chỉnh sửa nhanh cần thiết nào cho các tệp của mình hoặc lên kế hoạch cập nhật tệp cục bộ và chuyển lại tệp. Thông tin thêm về việc chuyển tập tin có trên trang FAQ.

KHÔNG sử dụng trình xử lý văn bản, ví dụ: Word hoặc Worderinf! Họ thêm rất nhiều ký tự định dạng mà bạn không nhìn thấy, nhưng điều đó sẽ ngăn chương trình của bạn không bao giờ biên dịch. Trên Windows, bạn có thể sử dụng Notepad hoặc Wordpad và đảm bảo bạn lưu các tệp dưới dạng "Tài liệu văn bản" với phần mở rộng .java. Nếu hệ thống cố gắng thêm hậu tố ".txt", hãy đặt dấu ngoặc kép xung quanh tên tệp và phần mở rộng của bạn vào hộp Lưu để ngăn điều này. Bạn cũng có thể thử bất kỳ trình soạn thảo nào trong phần Tải xuống hữu ích (một phần chúng tôi khuyên dùng cho PC là Trình chỉnh sửa tệp lập trình viên). Trên máy Mac, sử dụng BBEdit Lite (cũng được liên kết trên trang Tài nguyên) hoặc một trong các trình soạn thảo Unix tích hợp sẵn có trong cửa sổ Terminal. Bạn có thể có được một chương trình telnet an toàn hoặc sử dụng một chương trình mà bạn có, telnet vào hệ thống FAS, và viết và chỉnh sửa các chương trình của bạn trên hệ thống. Có ba trình soạn thảo Unix mà bạn có thể thử: pico, emacs và vi. Khi bạn đã viết chương trình của mình và lưu nó, như trên, bạn có thể biên dịch và chạy nó trên FAS

http://www.fas.harvard.edu/~libe50a/homework.html http://www.fas.harvard.edu/~libe50a/faq.html http://www.fas.harvard.edu/~libe50a /java.html

Nếu bạn hỏi tôi, họ đang hành hạ bọn trẻ, nhưng không sao. Có nhiều người Sparta hơn, huống chi là Mothakes, Perioikoi và Helot hơn Harvard có thể thừa nhận trong bất kỳ năm nào.


Vâng, nó là có thể. Tôi cho rằng một cái gì đó giống như Notepad là không có IDE, nhưng emacs và Textpad (tôi đã sử dụng cả cho khóa học C, Java) được coi là một IDE. Bây giờ ... sau khi mã hóa bằng C # trong VS2010, với WinForms và tất cả, tôi sẽ không muốn quay lại với các trình soạn thảo văn bản tại nơi làm việc - tôi sẽ bị mắng vì không làm việc tào lao.

Tuy nhiên, đối với các dự án học thuật, khi các ví dụ nhỏ, việc sử dụng không có IDE là điều hợp lý. Hãy nhớ rằng: trong các lớp lập trình giới thiệu, nhiều vấn đề trong thế giới thực không có mặt. Bạn có thể sẽ không phải thêm các tệp .xml dưới dạng tài nguyên vào một dll; Bạn có thể không cần gỡ lỗi nhiều, bạn sẽ không cần sử dụng hợp đồng mã hoặc chuyển từ C ++ không được quản lý sang C ++ / ClI, sau đó chuyển sang C # và quay lại. Bài tập học tập không cần phải lộn xộn bởi vì chúng có thể được thực hiện từ đầu, và được đo bằng man-ngày / tuần. Tất cả các tệp có thể là một phần của chỉ một dự án (ngay cả đối với trình biên dịch hoặc lớp hệ điều hành). Một IDE như Visual Studio thực sự có thể cản trở bạn khi một makefile đơn giản sẽ làm. Hãy nghĩ về vô số các tùy chọn mà người ta phải cấu hình. Tương tự với Eclipse - nó là một trình soạn thảo được thiết kế quá mức có thể tùy chỉnh vô cùng. Một tệp thực hiện đơn giản và hai tệp C đơn giản có thể là tất cả những gì bạn cần. Trong thực tế, bạn có xu hướng kiểm soát nhiều hơn theo cách đó, khi bạn tự chỉ định mỗi cờ. Tôi đã mã hóa như thế trong phòng thí nghiệm đại học một lần. Thật là buồn cười, nhưng một trong những "nhúng" (có nghĩa là nó phải nhỏ đến mức nó có thể vừa với máy bay) không có GUI và không có chuột :) Tôi vẫn có thể đăng nhập, chỉnh sửa, biên dịch và gỡ lỗi một chương trình C, cũng như thêm trình điều khiển và biên dịch lại kernel.


Tôi thực sự đồng ý với cách tiếp cận đó. Mặc dù tôi sẽ không ép buộc telnet - chỉ cần dòng lệnh và trình soạn thảo văn bản.
Michael K

0

Đối với công việc cơ sở dữ liệu, bạn chỉ cần một trình soạn thảo văn bản (notepad ++) và một máy khách dòng lệnh như osql hoặc sqlcmd. Thậm chí không phải là một trình biên dịch.


0

Điều đó không chỉ có thể , mà - ít nhất một lần trong đời - bạn phải lập trình mà không cần IDE. Nó sẽ giúp bạn hiểu quá trình biên dịch, sử dụng các thư viện - có thể điều đó sẽ mở ra cho bạn ý nghĩa của việc lập trình thực sự.

Ngoài ra, tôi nghĩ rằng một trình soạn thảo văn bản tốt sẽ tốt hơn IDE. Đối với MS-Windows, tôi khuyên dùng PSPad (đó là một đèn flash mạnh mẽ, giống như MultiEdit trong thời đại MS-DOS), đối với GNU / Linux, hãy thử Geany (có thể đó là repo của distro của bạn).


0

Tôi sử dụng một cuốn sổ tay 99 xu với Bút Pilot Gel đáng tin cậy của mình để viết chương trình.

Chúng tôi chỉ cần nhập lại vào Visual Studio mã.

Viết một chương trình và mã hóa là hai điều khác nhau (đối với tôi).


Bạn viết chương trình đầy đủ bằng tay trên giấy trước?

@ Thorbjørn - Tôi đã thực hiện nó trước ngày trước (chủ yếu là các trò chơi ngắn) và khi tôi làm việc với các thuật toán, tôi thường sử dụng bảng trắng để phác thảo chúng trái ngược với bút và giấy.
rjzii

Vâng, tôi viết rất nhiều mã bằng tay. Không phải toàn bộ chương trình, bởi vì Visual Studio tự động hóa rất nhiều thứ.
Pablo

0

Lập trình mà không có IDE là một cách tuyệt vời để tìm hiểu những gì đang xảy ra.

Chúng tôi bắt đầu lập trình ở trường với một trình soạn thảo văn bản màu cú pháp đơn giản. Quá trình biên dịch xảy ra với dấu nhắc lệnh (hoặc thông qua tập lệnh bó đơn giản).

Chỉ khi chúng tôi hiểu những điều cơ bản về lập trình, chúng tôi mới chuyển sang các trình soạn thảo mạnh hơn như Eclipse hoặc Visual Studio.


0

Đúng như dự đoán, tất cả các câu trả lời đều nói cùng một điều: "tất nhiên là bạn có thể! Đó chỉ là văn bản! Văn bản văn bản văn bản văn bản!" Điều này đúng, nói chung, và là câu trả lời tốt nhất cho câu hỏi của bạn. Hầu hết các IDE chỉ đơn giản là thao tác văn bản.

Nhưng điều đó không phải lúc nào cũng đúng và trong một số trường hợp nhất định, việc di chuyển khỏi một mô hình chỉ có văn bản dẫn đến những tiến bộ lớn. Những tiến bộ này thường bị từ chối bởi những người theo chủ nghĩa thuần túy văn bản (hầu hết mọi người, bởi vì nó cũng là như thế nào ... nó không phải là một sự trùng hợp?!). IBM Visual Age là một ví dụ thực sự tuyệt vời đã chết một cái chết khủng khiếp.

Một ví dụ khác xuất hiện trong tâm trí và nó rất hay và rất phổ biến là Interface Builder để tạo các sản phẩm Mac và iOS. Đầu ra của nó KHÔNG phải là chương trình văn bản mà là các đối tượng được tuần tự hóa, vì vậy bạn không thể tạo NIB mà không cần sử dụng IB hoặc viết IB của riêng bạn.

Những người theo chủ nghĩa thuần túy sẽ nói, "ừ, nhưng Interface Builder được viết bằng mã văn bản!" Vì thế?

Tôi thực sự tin rằng CS với tư cách là một lĩnh vực sẽ tiến bộ vượt bậc nếu chúng ta có thể vượt ra ngoài mô hình chỉ có văn bản. Ngoài ra, tôi nghĩ rằng cuối cùng chúng ta sẽ đi theo hướng này, nhưng sẽ mất nhiều thập kỷ. Đầu tiên chúng ta phải tìm ra cái nào tốt hơn, vihoặc emacs....


0

Gần đây tôi đã nâng cấp lên vim. Tôi thích cách nó làm nổi bật các từ khóa bằng bất cứ ngôn ngữ nào tôi đang viết. Thở dài, chỉ khi tôi có thể đến một hệ điều hành thực sự và không sử dụng notepad.

Vợ tôi đã viết COBOL bằng edlin. Tôi nghĩ nó khá là buồn cười.

Một sự cải tiến như vậy đối với các thẻ keypunch mà chúng ta đã sử dụng và 24 giờ quay lại từ các hoạt động chỉ để phát hiện ra chúng ta có một lỗi đánh máy.

Tôi có các hình thức mã hóa ở đâu đó trên gác mái.

Bạn đã có 1 và 0? Chúng tôi đã phải vẽ một đường qua 0 của chúng tôi.

Nhưng bạn nói với những người trẻ ngày nay rằng họ sẽ không tin bạn.

j.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.