BASIC cổ điển đã từng được sử dụng để phát triển phần mềm thương mại chưa, và nếu vậy, những hạn chế đã được khắc phục như thế nào?


46

Nhiều người trong chúng tôi, bao gồm cả tôi, bắt đầu cuộc sống lập trình của họ với các chương trình được viết trên máy tính ở nhà , đại loại như

10 PRINT "ENTER RADIUS"
20 INPUT R
30 PRINT "CIRCUMFERENCE="; 2 * R * PI
40 PRINT "AGAIN?"
50 INPUT A$
60 IF A$="Y" THEN GOTO 10
70 END

Tất nhiên, BASIC dựa trên số dòng có xu hướng tạo mã spagetti, cũng bởi vì hầu hết các phương ngữ BASIC đã bỏ lỡ các câu lệnh cấu trúc như WHILE, làm mọi thứ trừ FOR-loop với IF, GOTOGOSUB. Tôi đang nói về phương ngữ BASIC trước năm 1991, khi QBASIC và Visual Basic xuất hiện.

Trong khi các phương ngữ BASIC có thể đã thúc đẩy phong cách xấu trong số các lập trình viên đầy tham vọng, liệu có các dự án thương mại lớn hơn được tạo ra theo phương ngữ BASIC như vậy không? Nếu vậy, làm thế nào họ quản lý để sống và khắc phục những thiếu sót rõ ràng?

"Nghiêm trọng", ý tôi là:

  • Không phải là một trò chơi (tôi biết một số trò chơi thương mại được viết bằng BASIC, ví dụ: Pimania )
  • Không phải phần mềm miễn phí
  • Không tầm thường, nghĩa là lớn một cách hợp lý (giả sử: ít nhất 1500 LỘC )
  • Bán cho một số khách hàng (không phải là phát triển nội bộ)
  • "Nhiệm vụ quan trọng" là một lợi thế

30
Were those BASIC dialects only used to teach aspiring programmes bad styleHừm ... Bây giờ nó là phong cách tồi tệ nhưng nó đã không trở lại.
yannis

9
Dartmough BASIC được thiết kế vào năm 1964 (và đó là một ngôn ngữ được biên dịch, thật thú vị), một kỷ nguyên do FORTRAN thống trị.
yannis

8
Giả sử bạn đang cố gắng tính chu vi của một vòng tròn, phong cách không phải là điều xấu duy nhất tôi thấy ở đây.
William Jackson

5
I'm seriously pissed off that this question was closed during the "History" contest.Heh, bạn đã bỏ lỡ một cơ hội tuyệt vời để có thêm một số lượt xem cho câu hỏi bằng cách đưa nó lên Meta.
yannis

15
99% tất cả các phần mềm được viết là dòng ứng dụng kinh doanh được viết trong nhà và theo định nghĩa sẽ khiến chúng nghiêm trọng như bạn có thể nhận được.

Câu trả lời:


48

Chắc chắn rồi. Trước khi những điều Altair / MITS / SWTPC / Kim / Sinclair / Pet / RadioScrap / OSI / Apple xảy ra, đã có một cỗ máy nhỏ thú vị được gọi là IBM 5100 . Nó có BASIC trong ROM , ổ băng cassette lớn (hoặc hai), bộ nhớ 8 KB. một màn hình 24 dòng và một máy in, tất cả chỉ với 10.000 USD - một đơn đặt hàng lớn hơn so với chiếc mini thông thường của bạn. Ban đầu được xây dựng cho các nhà khoa học ( APL trong ROM cũng là một lựa chọn), nhưng sau đó một vài loại kế toán đã phát hiện ra nó và bắt đầu một cơn sốt: mọi doanh nghiệp nhỏ đều muốn có một. Với phần mềm tùy chỉnh, tất nhiên. 5110 theo đó, với các ổ đĩa băng được thay thế bằng 8 "đĩa mềm.

Bất kỳ phần mềm thương mại? Galoons .

Bạn có thể nói sổ cái chung, bảng lương, tài khoản phải trả, tài khoản phải thu, kiểm soát hàng tồn kho và hóa đơn không? Tôi đã ở đó, làm điều đó - trong BASIC. Hóa đơn tiện ích, hàng tồn kho xe mới và đã qua sử dụng, xe chở rác và lịch trình giao đồ uống? Yup - CƠ BẢN. Muốn theo dõi quặng sắt từ các mỏ trên tàu lên tàu ... BASIC. Mọi thứ không được nâng lên có khả năng được thực hiện trong BASIC. Ý tôi là về mặt thương mại. (Vì RPG II không được tính ;-).

Làm thế nào một người làm việc xung quanh những hạn chế?

Chà, điều đầu tiên bạn làm là gửi khách hàng trở lại IBM để có thêm bộ nhớ, bởi vì ai có thể viết bất cứ điều gì nghiêm trọng trong 8 KB? Bạn chỉ cần để có 16. Và hai ổ đĩa băng, nếu có thể, vì lý thuyết automata sang một bên, kết hợp sắp xếp trên một băng duy nhất là, tốt, một chút chậm.

Ồ, xin lỗi - bạn có nghĩa là những hạn chế của BASIC.

Chà, bạn phải quản lý tài nguyên của mình khá cẩn thận - những thứ như số dòng - bởi vì bạn không muốn dùng hết chúng; nỗi đau thực sự ở phía sau phải đánh số lại toàn bộ một phần, và nhập lại tất cả, mà không vô tình làm mất một hoặc hai dòng mã.

Không - đùa thôi. Chúng tôi thực sự không có vấn đề đó cho đến khi micro --- er, các máy tính gia đình xuất hiện, với một trình thông dịch BASIC không thể tự đánh số lại.

Chúng tôi cũng đã sử dụng mô-đun - nơi bạn đã gọi một chương trình mới, chạy nó cho đến khi nó thoát và quay lại chương trình gọi. Một gosub trên steroid (vì bạn có nhiều bộ nhớ hơn để sử dụng), nhưng chậm hơn (vì phải mất một thời gian để máy tìm chương trình trên băng, và tải nó vào, sau đó tua lại và tìm chương trình gốc và tải nó trở lại...). Rất giống như một ngã ba và thực hiện, nhưng không có ngã ba, chỉ tốt hơn vì toàn bộ không gian bộ nhớ đã được chia sẻ.

Sử dụng nghiêm ngặt của công ước cũng giúp - bạn biết đấy, như "Bạn luôn luôn phải nhắm mục tiêu một GOSUB tại một dòng chú thích rằng nói gì thói quen này không, và bạn NÊN làm tương tự cho một GOTO khi có thể Stuff như thế Oh, và.. Có cấu trúc lập trình , một lát sau - "theo quy ước" một lần nữa.

Một số thậm chí đã đi một chút đến cực đoan: OAOO , YAGNI , TSTTCPW , ghép nối, tái cấu trúc không thương tiếc, loại công cụ đó. Không phải bởi những cái tên đó, tất nhiên. (Xem thêm: Giáo hội ;-)

Những ngày vinh quang.


4
Từ tất cả các câu trả lời hay, tôi chọn câu trả lời này vì nó chưa có quá nhiều tình yêu (upvote) và cũng vì nó làm nổi bật việc sử dụng BASIC cho phần mềm thương mại trên máy vi tính trước sự gia tăng của máy tính gia đình.
user281377

1
Bỏ phiếu cho câu trả lời tuyệt vời của bạn và tham khảo một trong những cuốn sách hay nhất trong kinh thánh :)
Rocklan

46

Phần mềm đầu tiên tôi từng làm việc là chương trình GW-BASIC 8k mà công ty đã viết lại vào những năm 80 để sử dụng tính toán truyền nhiệt để định cỡ và định giá thiết bị nồi hơi. Mặc dù mã này hoàn toàn không thể hiểu được, nhưng nó đã hoạt động tốt đến mức họ đã sử dụng nó trong hơn 20 năm.

Đây là điểm mạnh của BASIC khi một kỹ sư cơ khí có sách hướng dẫn tham khảo thực sự có thể viết phần mềm có thể sử dụng chất lượng (tại thời điểm đó). Trước BASIC và sự phổ biến của PC, một điều như vậy sẽ không được nghe thấy. Bạn sẽ cần phải thuê một nhóm các kỹ sư máy tính và có thể là các nhà khai thác máy tính để lập trình và xử lý một máy tính lớn được chia sẻ. Tất cả điều này sẽ quá phức tạp đối với kỹ sư cơ khí điển hình để nhận trong một khoảng thời gian ngắn.

Vì vậy, chắc chắn BASIC rất hữu ích ngoài những người đam mê máy tính gia đình, đây là lần đầu tiên nhiều doanh nghiệp giới thiệu vào lĩnh vực viết phần mềm tùy chỉnh với giá cả phải chăng mà không cần đội ngũ chuyên gia.


Hoàn toàn, điều này. - ^^ ^
Robert Harvey

30

Có, có rất nhiều sản phẩm thương mại và sự phát triển "nghiêm túc" khác được thực hiện trong BASIC. Để hiểu lý do tại sao, bạn phải hiểu bối cảnh của những năm 1970 và 1980, khi BASIC phát triển trên các máy vi tính mini và nhỏ.

Trước đó, máy móc được tích cực vẽ nguệch ngoạc theo tiêu chuẩn ngày nay. Các CPU được xung nhịp ở một vài MHz (thường là ít hơn nhiều cho các máy vi tính) và có ít bộ nhớ hơn mức chiếm dụng của HTML mà nó cần để hiển thị trang này. Nếu bạn định triển khai một sản phẩm, bạn phải sử dụng các công cụ có sẵn, đó là lắp ráp trần trụi hoặc trên máy vi tính, trình thông dịch BASIC vận chuyển trong ROM (thường là 16K trong không gian địa chỉ 64K) với hệ thống . Có những ngôn ngữ khác có sẵn, nhưng nhiều ngôn ngữ không có tất cả các tính năng có cấu trúc mà chúng tôi được cấp. Điều này có liên quan nhiều đến thực tế là bộ nhớ rất khan hiếm, * không có gì là ảo ngoại trừ trên các hệ thống rất cao cấp và thường không đủ để giữ một trình biên dịch cho ngôn ngữ phức tạp hơn. Với nguồn lực hạn chế như vậy, "nghiêm trọng"

Lập luận của bạn rằng các nhà sản xuất máy tính gia đình sớm nên biết rõ hơn và cung cấp một ngôn ngữ có cấu trúc chỉ không hoạt động trong bối cảnh đó. Điều đó chỉ đơn giản là sẽ không xảy ra với công nghệ có sẵn ở mức giá mà mọi người có thể đau bụng.

Cách chúng tôi khắc phục những thiếu sót về ngôn ngữ rất đơn giản: chúng tôi đã không nhìn thấy chúng theo cách đó và hoàn thành công việc với những gì có sẵn. ANSI Minimal BASIC được cấu trúc rất giống ngôn ngữ lắp ráp ở chỗ bạn nhận được hầu hết các hương vị của các lệnh gọi phân nhánh và chương trình con đơn giản, nhưng tùy thuộc vào bạn để đảm bảo các ngôi sao được căn chỉnh chính xác. Ngoại lệ duy nhất là FOR..NEXTcấu trúc được sử dụng để cung cấp vòng lặp. Về cơ bản, nếu bạn muốn phát triển một cái gì đó trong BASIC và làm tốt công việc đó, bạn phải lên kế hoạch và hiểu cấu trúc của các chương trình của mình một cách cẩn thận như thể bạn đang viết chúng. Các công cụ sửa lỗi có sẵn rất nguyên thủy, vì vậy, về bản chất, bạn phải có hành động của mình cùng nhau nếu bạn muốn các chương trình của mình hoạt động và có thể duy trì được.

Vâng, hồi đó có rất nhiều spaghetti, nhưng tôi vẫn chưa thấy một ngôn ngữ mà không thể viết mã xấu.


* Bộ nhớ đã chạy khoảng 750-1.000 đô la Mỹ mỗi MB vào đầu những năm 1980. Được điều chỉnh theo lạm phát, đó là 1.600-2.200 đô la Mỹ trong năm 2010 đô la. Cùng năm đó, chi phí cho mỗi megabyte là khoảng 0,03 đô la Mỹ.


Tôi nhớ đã trả khoảng 1000 đô la cho bảng nhớ 2 Megabyte vào những năm 1980. Chiếc máy tính mà nó đã sử dụng, một bộ máy nhái PC dựa trên NEC V20, có giá khoảng 2500 đô la.
jfrankcarr

LOL, tôi nhớ rằng chúng tôi đã phải có một PO được ký bởi chủ tịch công ty để mua thẻ nhớ 64 MB cho VAX vào cuối những năm 80. Công bằng mà nói, nó là bộ nhớ ECC có cổng kép, nhưng nó có giá ở đâu đó ở phía xa của $ 30K ...
TMN

Có các ứng dụng kinh doanh được viết bằng BASIC, một số trong số đó được bán để lấy tiền và một ứng dụng kinh doanh bán chạy được viết bằng BASIC, cho APPLE] [hoặc CommodorePET, hoặc Atari, hoặc IBM, hoặc các máy vi tính TI của những năm đầu thập niên 1980 có thể bán được 100 500 bản, với đơn giá khoảng 100 đô la. Không có gì giống như sản phẩm phần mềm hiện đại hồi đó bởi vì máy tính hồi đó còn nhỏ và phần mềm cho nó rất nhỏ. Cả cơ bản lẫn C cũng không phải trình biên dịch cũng như bất kỳ ngôn ngữ hiện đại nào khác, sẽ không thay đổi điều đó.
Warren P

Vào những năm 80, máy tính lớn của trường đại học địa phương của chúng tôi đã nâng cấp từ 10mb lên 50 mb. Được cấp 10mb chỉ đầy một nửa nhưng họ muốn có đủ dung lượng cho tương lai có thể thấy được ... Hãy tưởng tượng rằng một ổ cứng chỉ có 50 mb cho khoảng 50 - 100 người dùng ... bị giết.
SoylentGray

22

Công việc lập trình 100% đầu tiên của tôi, vào những năm 1980, đang làm việc với gói kế toán thị trường dọc ban đầu được viết bằng GW-BASIC . Nó đã được chuyển sang QuickBASIC 3.0, nhưng nó đã giữ lại gần như tất cả các lỗi liên quan đến phương ngữ BASIC ban đầu. Có hàng tấn GOTO và rất nhiều cấu trúc nghèo nàn. Có khoảng một tá mô-đun (hàng tồn kho, sổ cái, v.v.) và chương trình được bán với giá khoảng 1000 - 2500 đô la Mỹ cho mỗi mô-đun cộng với các hợp đồng hỗ trợ hàng năm. Doanh thu của công ty là trong khoảng 15 - 25 triệu đô la Mỹ một năm.

Đối với cách sống với những thiếu sót, rất nhiều hạn chế đã được khắc phục bằng cách sử dụng ngôn ngữ máy hoặc MASM . Người ta thường sử dụng các lệnh PEEK và POKE để chèn ngôn ngữ máy vào các chương trình BASIC. Tôi đã viết các chương trình MASM (và sau này là C) để mở rộng chương trình để thêm những thứ như hỗ trợ cơ sở dữ liệu thô sơ, truyền thông và văn bản "đồ họa".


12
Tôi thương hại bạn, trừ khi tất nhiên, bạn đã nhận được trên 15 triệu.
Spencer Rathbun

@SpencerRathbun - Đáng buồn thay, tôi đã được trả một mức lương khá thấp, gần bằng khoảng 35 nghìn đô la ngày nay.
jfrankcarr

Phải, công việc lập trình đầu tiên của tôi là ở Quickbasic 3. Đó không phải là một cổng nhưng nó không tốt hơn nhiều. Phần chính đã được thực hiện bởi một người có "đào tạo" đang đọc cuốn sách đi kèm với trình biên dịch. Nhiệm vụ quan trọng cho khách hàng, pricetag cao 4 con số.
Loren Pechtel

5

Các dự án thương mại lớn hơn được tạo ra theo phương ngữ BASIC như vậy?

Trên các máy tính gia đình cũ như C64 hoặc các thiết bị tiền nhiệm của nó, đã tồn tại rất nhiều chương trình BASIC và một số chương trình thương mại. Nhưng "lớn" hiếm khi có thể, vì với <64kB RAM, việc viết các chương trình BASIC "lớn" không thực sự dễ dàng. Nếu bạn muốn khắc phục những hạn chế của máy, bạn thường phải rời khỏi BASIC, "ngôn ngữ cấp cao" và sử dụng trình biên dịch.

Vì vậy, câu trả lời cho câu hỏi của bạn là "có thể không nhiều", nhưng không phải vì những lý do bạn có trong đầu (như "quá dễ bị lỗi / không có cấu trúc", v.v.).

Nhân tiện: AFAIK trình biên dịch PETSpeed ​​BASIC nổi tiếng đã được viết bằng BASIC (tất nhiên được biên dịch với chính nó).


4
Tôi muốn chỉ ra rằng điều quan trọng! = Lớn, đặc biệt là trở lại trong những ngày đó. Ngày nay, các chương trình thương mại có xu hướng tích hợp mọi tính năng có thể tưởng tượng được, nhưng không phải lúc nào cũng như vậy.
Jeanne Pindar

@DocBrown Có nhiều cách để vượt qua giới hạn bộ nhớ 64k và các ứng dụng lớn. Nhiều ứng dụng lớn tồn tại giống như bộ ứng dụng với nhiều mô-đun.
maple_shaft

Tôi nhớ một số trò chơi C64 thương mại ban đầu được viết hoàn toàn hoặc một phần bằng BASIC. 'Rox 64' là một.
Alan B

"Telengard" Tôi nghĩ rằng nó được gọi, một game RPG cho C64, giống như 8k dòng Basic. Thật thú vị khi điều chỉnh nguồn để biến mình thành một nhân vật uber.
Neil N

@maple_shaft: "Nhiều?" Đặc biệt là "Nhiều ứng dụng BASIC?" Tôi đã có ấn tượng chỉ có một vài.
Doc Brown

5

Toàn bộ dòng kế toán của Peachtree Software (các khoản phải thu, phải trả, v.v.) đều được viết (và vẫn có thể, đối với tất cả những gì tôi biết) trong BASIC. Khi PC IBM lần đầu tiên được tung ra, tôi đã dành nhiều buổi tối để sửa lỗi và sửa mã cho các khách hàng đã mua Máy tính cá nhân của IBM và các gói Peachtree để làm sách cho doanh nghiệp nhỏ của họ.


5

Công việc đầu tiên của tôi là vào năm 1981 lập trình Apple IIs trong Basic tại văn phòng Price Waterhouse (Pre Coopers) trong tư vấn quản lý của họ ở Belfast, N. Ireland. Một nhóm gồm hai / ba người trong chúng tôi đã phát triển và lắp đặt hệ thống trong các khách hàng bao gồm một cửa hàng sách và một lò mổ. Đó là một hệ thống mô hình tài chính, thực sự là một bảng tính Visicalc rất phức tạp (50 tờ, 3.000 biến) được chuyển thành một chương trình Cơ bản lớn. Phải mất hai ngày để chạy trên hệ thống Apple II với 4 ổ đĩa để xử lý thông lượng một tuần tại lò mổ. Nhanh hơn một chút so với hệ thống thủ công của họ đã mất hai tuần cho mỗi tuần.

Sau đó chúng tôi chuyển sang các máy Act Sirius, một lần nữa lập trình trong Basic (Microsoft 8KB Basic) đã được cài đặt trong máy khách.

Cơ bản có số dòng nhưng có một bộ công cụ có thể đánh số lại các chương trình. Khi tôi mới ra khỏi Uni nơi tôi đã học Pascal, tôi đã cố gắng viết theo phong cách có cấu trúc nhất có thể (càng nhiều càng tốt trong Basic), nhưng tất nhiên Gotos và Gosub đã được sử dụng.

Sau đó tôi đã lập trình vào năm 1983 trên Dec Rainbow, sử dụng CBasic, một bản tổng hợp cơ bản.


4

rất nhiều phần mềm thương mại được viết bằng BASIC-PLUS trên các hệ thống PDP-11 . Tôi nhớ đã thấy các gói phân tích thống kê và kế toán, cộng với một số lượng lớn các công cụ tự động hóa trong phòng thí nghiệm cao cấp (tôi không chắc chúng là "thương mại" như thế nào. Chúng có xu hướng được đưa vào như một phần của gói công cụ, vì vậy tôi không biết nếu chúng được bán riêng.). ISTR BASIC cũng là một trong những ngôn ngữ chính để phát triển ứng dụng HP 2000 và đó là ngôn ngữ chính (có thể duy nhất) được hỗ trợ cho các máy trạm HP 9800 đầu tiên của họ .


HP2000 có hỗ trợ phát triển trong bất cứ điều gì khác không? Ấn tượng của tôi là HP2000 được mã hóa cứng để chỉ chạy các chương trình do người dùng cung cấp trong HP Timeshare BASIC [một số hoặc tất cả mã quản lý tệp và quản lý người dùng của hệ thống có thể được viết bằng ngôn ngữ hoặc mã máy khác].
supercat

3

Các sản phẩm cơ sở dữ liệu DOS ban đầu của Alpha Software (khoảng năm 1985) "Trình quản lý cơ sở dữ liệu I", "Trình quản lý cơ sở dữ liệu II" (DMB2) và "Alpha Three" được viết bằng BASIC và được biên dịch bằng trình biên dịch BASIC của IBM. Tôi đã làm việc trên "Alpha Three". Tất cả các giao diện người dùng đều ở BASIC nhưng nó có thành phần TSR (chấm dứt và lưu trú) cốt lõi được viết bằng C và ASM mà BASIC liên lạc qua các ngắt. Số dòng và ngắt dòng chiếm không gian phân khúc có giá trị vì vậy mã bị cắt xén khủng khiếp và không thể đọc được. Chúng tôi đã sử dụng các biến được chia sẻ và các mô-đun hoán đổi liên tục. Thật khó để làm việc. Chúng tôi vẫn cố gắng hợp lý về tổ chức tuy nhiên thư viện chuỗi của chúng tôi chỉ có 60000 số dòng thấp. Một hoạt động phổ biến như cắt xén một chuỗi sẽ như sau:

$ S = $ INS; GOSUB 60210; $ INS = $ S;

Chúng tôi đã chuyển đổi sang tất cả C ngay sau khi phát hành "Alpha Three".


1
Vì tất cả các biến là toàn cục và bạn cũng phải lạm dụng chúng để truyền tham số, làm thế nào bạn quản lý mã của mình để tránh vô tình ghi đè lên một biến đã được sử dụng?
user281377

Đó là quy ước dựa.
Pete Lyons

3

Đầu những năm 1980, Không quân Hoa Kỳ đã mua một loạt máy tính xe buýt Cromemco S100 để sử dụng cho các phi đội bay làm công cụ lập kế hoạch bay.

Phần mềm lập kế hoạch bay được phát triển bằng BASIC bởi các phi công và hoa tiêu của Không quân tại Trung tâm tác chiến không quân chiến thuật, đặt tại Eglin AFB, Florida .

Theo như tìm hiểu về "những thiếu sót rõ ràng" của BASIC, chúng tôi thực sự không biết gì hơn. Chỉ cần cho phép truy cập vật lý vào máy tính cho một chiếc máy bay dường như là một bước nhảy vọt đáng kinh ngạc của công nghệ vào thời điểm đó.


2

Tôi tin rằng Ultima gốc trên Apple] [đã được viết trong Applesoft Basic.

DEC đã sử dụng phiên bản BASIC cho nhiều RSTS và các hệ điều hành khác mà nó đã phát triển.


Có một trò đùa rằng RSTS / E được viết bằng BASIC, nhưng thực sự không phải vậy. Nhiều chương trình tiện ích sysadmin được cung cấp với HĐH đã được viết bằng BASIC.
Don Roby

2

Nỗi sợ duy nhất mà tôi có, với tư cách là một lập trình viên QuickBasic, 20 năm trước, là tin nhắn "Hết bộ nhớ". Nhưng điều này chỉ làm cho tôi trở thành một lập trình viên tốt hơn! Tôi đã học được cách viết mã nhỏ gọn và nghiêm túc.

Tôi đã từng sử dụng QuickBasic cho lập trình công nghiệp. Trong thế giới thực (các nhà máy), bạn không thể nói với sếp của mình "sẽ mất nửa năm để viết bằng C"; bạn chỉ có thể nói: "vâng, sếp, nó sẽ sẵn sàng vào tuần tới". Vâng, BASIC là giải pháp thực tế và nhanh chóng trong thế giới thực. Không phải C hay Pascal.

Một trong những chương trình tôi đã viết trong QuickBasic 4.5, một cơ sở dữ liệu duy nhất, đã được bán cho một số công ty và thực sự đã thay thế cơ sở dữ liệu thương mại mà họ đã có (có thể được viết bằng C hoặc Pascal). Cơ sở dữ liệu này được sử dụng cho đến ngày hôm nay.

Một chủ đề mà tôi muốn đề cập:

tất cả chúng ta đều nghĩ rằng các phương pháp lập trình mới rất hữu ích . Nhưng trong cuộc sống thực (công nghiệp), hầu hết các máy móc, ngày nay, được vận hành bởi PLC hiện đại. Các chương trình thường được viết bằng lập trình bậc thang, gấp nhiều lần so với GW-BASIC. Là một lập trình viên cho PLC, tôi có thể nói rõ ràng: Tôi rất thích thay thế chương trình bậc thang nguyên thủy này bằng ngôn ngữ cấp cao như GW-BASIC hoặc thậm chí QuickBasic. (MEGA-BASIC là một phương ngữ đã được sử dụng cho mục đích này trong quá khứ).

Rốt cuộc, hầu hết các máy móc đang làm gì? diễn giải đầu vào và thiết lập đầu ra. Bạn không cần C / hội cho điều đó và bạn không cần Java. Bạn chắc chắn cần QuickBASIC để tạo mã có thể duy trì.


1

Hoàn toàn đồng ý.

Từ lâu, tôi đã làm việc cho một công ty bán được nhiều triệu đô la hệ thống, chủ yếu cho ngành công nghiệp đại lý ô tô. Các hệ thống này chạy phần mềm BASIC trên các dẫn xuất máy tính mini 16 bit HP 21MX tùy chỉnh (trước thời đại của bộ vi xử lý 16 bit thành công). Đây là một công ty có quy mô trung bình với hàng tá lập trình viên Cơ bản. Họ đã sử dụng một phương ngữ BASIC kiểu cũ yêu cầu số dòng và chỉ cho phép 286 tên biến có thể, và các giải pháp đã cung cấp tất cả các kế toán và hàng tồn kho kinh doanh (vv) cho các doanh nghiệp cỡ trung bình. Nhóm R & D cũng đã viết các trình biên dịch, trình biên dịch và thậm chí các trình giả lập phần cứng trong Basic để giúp bootstrap phát triển phần cứng thế hệ tiếp theo của họ.

Khi cố gắng giải thích những gì tôi nghĩ là lợi ích của các phương pháp thiết kế phần cứng và lập trình hiện đại hơn với một bộ đếm thời gian cũ, ông nói với tôi rằng các nhà thiết kế giỏi đã phân vùng, mô đun hóa và cấu trúc đúng các giải pháp cho các vấn đề của họ, ngay cả khi biểu hiện trực tiếp như vậy không được xây dựng trong ngôn ngữ hoặc công cụ, trong khi đó, ông lưu ý, các nhà thiết kế tồi có thể tạo ra rác không thể gỡ lỗi cho dù mô hình phát triển thời trang "lạ mắt" mà họ làm việc bên trong là gì.


1

Thực tế là, hầu hết các đại lý xe hơi mới ở Mỹ hiện nay đều sử dụng các chương trình BASIC để báo cho bạn các lựa chọn tài chính và để tạo ra những tuyên bố thanh toán dài mà bạn nhận được khi mua xe. Các chương trình được viết bằng các phiên bản máy tính mini cổ xưa của BASIC chạy theo mô phỏng trên phần cứng hiện đại. Có các giao diện người dùng web được ghép trên, nhưng BASIC của nó nói chuyện với một tty bên dưới.

Khoảng năm 1980, bảo hiểm nhân thọ toàn cầu đã trở thành một trào lưu tức thời trong kinh doanh bảo hiểm nhân thọ. Mọi công ty đều muốn bán nó ngay lập tức và yêu cầu các giá trị tài khoản phải được tính toán cho từng chính sách mỗi tháng bằng cách sử dụng kết hợp rất phức tạp giữa lãi suất và mumbo-jumbo. Khi các dự án lớn trong các bộ phận xử lý dữ liệu sẽ mất khoảng một năm sau đó, nhiều công ty đã đi vào sản xuất với nhiều Táo, PC và / hoặc Tandy TRS-80 khi cần thực hiện phiên bản phức tạp hơn của những gì đã có trên máy tính lớn. 20 năm. Hầu như tất cả những thứ này đã được lập trình trong BASIC. Chủ yếu là BASIC sử dụng điểm nổi có độ chính xác ngắn, do đó, hàng triệu đồng xu của khách hàng đã bị mất trong vòng làm tròn.

JPL đã có một phiên bản BASIC, nó cũng được sử dụng rộng rãi khoảng 35 năm trước. Nó được gọi là MBASIC, với chữ M là quản lý, nhưng nó được sử dụng, trong số những thứ khác, để lập trình tàu vũ trụ.


1

Hệ thống điểm bán lẻ 4680/4690 cực kỳ phổ biến của IBM đã được viết theo một phương ngữ gọi là IBM 4680 BASIC . Tôi đã làm việc trên hệ thống này từ năm 1998-2002 cho một nhà bán lẻ lớn ở Anh.

Hệ thống này rất phổ biến, theo bài báo wiki, nó vẫn chiếm 12% thị phần trong năm 2005. Hệ thống này vẫn còn mạnh cho đến ngày nay, tỷ lệ rất tốt là hầu hết mọi người ở thế giới phương Tây đã gián tiếp sử dụng hệ thống hỗ trợ BASIC này trong thời gian qua tuần.


0

Nhìn vào PICK hoặc bất kỳ cơ sở dữ liệu MultiValue nào khác. Tất cả đều dựa vào DataBasic là ngôn ngữ chính hoặc duy nhất của họ và có cách sử dụng thị trường theo chiều dọc đáng kể. Chúng tôi vẫn điều hành một hệ thống mà tôi đã viết để mua sắm điểm chuẩn hơn 20 năm trước. Chạy đến khoảng 50k dòng mã.


0

Có một công ty tên là Softek ở Ấn Độ vào những năm 80 đã tạo ra các phiên bản Wordstar, dBase và Lotus 1-2-3 của riêng họ. Một sản phẩm khác của họ là trình biên dịch BASIC.

Sử dụng CBASIC của riêng họ, họ đã tạo ra gói kế toán kép rất toàn diện có tên SIMS-FA (Softek Financial Account).


0

Bất kì? Đúng. Nhiều? Không. Phần mềm giáo dục và lưu trữ hồ sơ.

Thời đại BASIC: ~ 1970-1990

Cho đến khoảng năm 1990, những hạn chế vượt quá mong đợi và phát triển cùng với nhu cầu của ngành. Phần lớn, nhu cầu của các công ty lớn hơn đã được các chuyên gia tư vấn phân tích và đáp ứng với bất kỳ ngôn ngữ nào đáp ứng nhu cầu.

Thay vào đó như ngày nay, nơi các công ty có ít nhiều ý tưởng phát triển về những gì họ cần và có một số giải pháp được xây dựng với VBA, và sau đó tìm hiểu đủ để khám phá các giải pháp máy chủ-máy khách có thẩm quyền hơn, ứng dụng web và giao diện được tối ưu hóa với dữ liệu chải chuốt .

Vào những năm 1970, nếu một công ty bình thường có thể cân đối tài khoản hoặc đăng ký số liệu sản xuất trên máy tính mà không cần ngân sách của một tập đoàn, thì đó sẽ là một bước tiến tuyệt vời từ việc giữ sách và nếu bạn có thể lấy sơ đồ ra thì thật tuyệt vời.

Vào những năm 1980, nếu bạn có thể di chuyển một số bản vẽ sản phẩm sang máy tính để có thể chỉnh sửa chúng, điều đó cũng thật tuyệt vời.

Cả hai điều này có thể được thực hiện với một ngôn ngữ dựa trên thông dịch viên. Vì các máy tính có thể chứa nhiều dữ liệu hơn, các trình biên dịch yêu cầu phức tạp, bởi vì CPU đã tụt hậu so với định luật Moore về hiệu suất xáo trộn dữ liệu thô từ khoảng năm 1977 đến khoảng năm 1987.

Nhưng cho đến cuối những năm 1980 khi những kỳ vọng đòi hỏi nhiều hơn, các ngôn ngữ được thiết lập vào những năm 1970 (được bổ sung trong các trường hợp hiếm hoi bởi Trình biên dịch và / hoặc phần cứng tùy chỉnh như bảng FPU) đã làm tất cả các công việc thương mại nghiêm túc trong các công ty với một vài ngoại lệ. Cobol và Fortran vẫn là tấm vé trên máy tính lớn. Chỉ các tập đoàn mới có thể đủ khả năng như vậy, và các công ty nghiêm túc đã làm những công việc nghiêm túc mà họ có thể làm với các chương trình BASIC nội bộ, và trong một thời gian là đủ.

Các gói phần mềm độc lập để sử dụng chung như bộ xử lý văn bản hoặc máy vẽ sơ đồ xuất hiện vào khoảng thời gian này, khi các hệ điều hành đã hoàn thiện trên các máy tính giá cả phải chăng làm mục tiêu cho trình biên dịch và lưu trữ có thể chứa tài liệu và dữ liệu "quy mô công ty".

Pascal là một ứng cử viên lớn ở đây. Trước đây, gần như tất cả những thứ đó đã được viết bằng Trình biên dịch. Cuối cùng, C đến từ Unix và bắt đầu được sử dụng trên PC.


0

Quay trở lại thời kỳ Commmodore 64, một phần của trò chơi Gunship được viết bằng BASIC. Bạn thậm chí có thể chỉnh sửa mã, vì vậy người trợ giúp của bạn có thể được trang bị mỗi khi bạn hạ cánh.


Tôi biết một số trò chơi (thương mại) được viết hoàn toàn bằng Basic, nhưng tôi loại trừ các trò chơi vì một lý do: Trò chơi là bất cứ điều gì bạn tạo ra chúng, miễn là chúng hài hước. Sống với những hạn chế sẽ dễ dàng hơn khi "bộ tính năng" hoàn toàn phụ thuộc vào người thiết kế và việc bảo trì không phải là vấn đề.
user281377

0

BBC BASIC có nguồn gốc từ BBC Micro , được phát hành tại Anh vào năm 1981. Vào thời điểm nó đạt đến phiên bản năm, như được thực hiện trên các máy tính RISC dựa trên ARM của Acorn, nó được coi là BASIC được giải thích nhanh nhất trên thế giới. Cú pháp của nó đã được nâng cao theo thời gian, bao gồm các từ khóa cấu trúc như CASE và WHILE và các chức năng và quy trình. (Nó thậm chí bao gồm một trình biên dịch, ban đầu cho 6502 , và sau đó cho ARM trong các phiên bản RISC OS .)

Nhiều ứng dụng máy tính để bàn thương mại đã được viết bằng cách sử dụng nó, có lẽ phần lớn là do nó cung cấp quyền truy cập thuận tiện vào các cuộc gọi SWI mà hệ thống WIMP hợp tác đã sử dụng. Nó đủ nhanh để thậm chí còn có một số game arcade được viết bằng cách sử dụng nó - Nevryon , một bản sao R-Type, là một game mà tôi đặc biệt nhớ khi nhìn vào nguồn gốc của nó.


Trên thực tế, tôi đã có cả Acorn Electron (phiên bản nhỏ hơn của BBC) và Acorn Archimedes (và cả Cambridge Z88 sử dụng cùng BASIC); và vâng, BASIC trong các máy tính này tốt hơn một chút so với hầu hết các máy tính gia đình khác. Nhưng vì BASIC cũng bao gồm khả năng sử dụng Trình biên dịch nội tuyến, nên khó có thể phân biệt các chương trình BASIC thuần túy khỏi các chương trình hỗn hợp nếu bạn chỉ lướt qua mã nguồn.
user281377

Ồ, một cái nhìn nhanh thực sự là tất cả những gì cần thiết để phân biệt giữa hai. Rất khác biệt. Và mặc dù nó bao gồm một trình biên dịch, nó không phổ biến để phân phối mã nguồn ngôn ngữ lắp ráp. Thông thường mã nhị phân được lắp ráp sẽ được đưa vào thay thế.
Dan Ellis

0

Các ngôn ngữ kịch bản cơ sở dữ liệu xBase cũ (như trong dBase II , dBase III + , Clipper, v.v.) có liên quan khá chặt chẽ với các BASIC không chuẩn khác nhau cùng thời.

Không chính xác BASIC được sử dụng cho công việc thương mại, nhưng có thể đủ gần.


Steve314: những ngôn ngữ xBase đó đã vượt xa BASIC máy tính tại nhà. Tôi đã viết rất nhiều mã trong Clipper và tôi nhớ các hàm, biến cục bộ, câu lệnh lặp và rất nhiều thứ khác bị thiếu trong máy tính gia đình BASIC của thập niên 80. Yannis: QuickBasic xuất hiện vào năm 1985.
user281377

@ user281377 - BBC Basic năm 1981 được cấu trúc và có quy trình, mặc dù vẫn cần số dòng. Tiêu chuẩn cơ bản ANSI (1984) bao gồm các cấu trúc khối, sub(một hàm / thủ tục với các tham số và biến cục bộ) và nhiều hơn nữa, và làm cho số dòng tùy chọn. Borland Turbo Basic năm 1985 có hầu hết các tính năng cơ bản tiêu chuẩn IIRC. Tôi đã sử dụng GFA Basic trên Atari ST một chút công bằng - cũng có cấu trúc, thủ tục, không có số dòng. Có vô số cấu trúc cơ bản, thủ tục trong thập niên 80.
Steve314

@ user281377 - xBase có lợi thế rõ ràng về mặt xử lý cơ sở dữ liệu và biểu mẫu nhập dữ liệu, làm những việc mà không cơ bản nào tôi biết, nhưng sau đó bạn có thể dễ dàng chỉ ra rằng STOS có lợi thế rõ ràng để hiển thị các họa tiết và đọc cần điều khiển.
Steve314

@ Steve314: Tôi biết có các phương ngữ BASIC với các tính năng tốt, nhưng tôi đặc biệt hỏi về các BASIC khác . Những người mà GOTO và GOSUB là tất cả những gì bạn có. Trong đó mọi biến là toàn cục và một mảng một chiều có cấu trúc dữ liệu nhiều nhất bạn có thể nhận được. Clipper là một phương ngữ xBASE thực sự tiên tiến; Thành thật mà nói, tôi không thể nhớ có bao nhiêu tính năng nâng cao của Clipper cũng có sẵn trong dBASE III, nhưng ít nhất nó cũng có các vòng lặp làm đúng.
user281377

1
@ user281377 Phiên bản gốc của câu trả lời đã đề cập đến Visual Basic (bạn lấy QuickBasic từ đâu?), đó là những gì tôi đã hét lên; P
yannis

-2

Hầu hết các micros chỉ có các công cụ phát triển trình biên dịch cơ bản (ROM). Đối với các chương trình không quan trọng về tốc độ, BASIC đã được sử dụng cho nhiều ứng dụng thương mại cũng như hầu hết các dự án của công ty nội bộ. Ngay cả khi CP / M xuất hiện cùng với những cải tiến thực sự duy nhất là khả năng xử lý các dự án lớn hơn và sử dụng trình biên dịch cơ bản của Microsoft (BASCOM). Kinh nghiệm của riêng tôi với sự phát triển vi mô ban đầu như sau:

~ 1980 - Microsoft ROM cơ bản trên Nascom 2 với trình biên dịch nhỏ. Phát triển ứng dụng thương mại bao gồm chương trình hoàn thuế VAT (thuế bán hàng) và chương trình kiểm soát quy trình (cả trong BASIC).

198? - Vẫn đang sử dụng BASIC, nhưng giờ tôi cũng đã có Pascal (BLS - tiền thân của Borland Pascal ).

Giữa những năm 1980 - PC bắt đầu thống trị và trình biên dịch C đầu tiên xuất hiện ( Hisoft và Mix). BASIC đi vào suy giảm (tất nhiên được hồi sinh ở dạng zombie tất nhiên bởi MS với Visual Basic ). GW-BASIC rất phổ biến như một công cụ phát triển nội bộ. Nhiều gói thương mại (kế toán, kiểm soát chứng khoán, v.v.) vẫn được viết bằng BASIC.

Cuối những năm 1980 - C trở thành ngôn ngữ phát triển chính (sau khi MSC 5 phát hành 1986?). Microsoft và Borland thống trị trong vài năm tới ...


1
Làm thế nào mà trả lời câu hỏi?
gnat

nó trả lời câu hỏi bằng cách nói "có, cơ bản đã được sử dụng rộng rãi để phát triển thương mại trong những năm 70 và đầu thập niên 80 mới nhất". Liên quan đến việc khắc phục những thiếu sót rõ ràng, hãy nhớ rằng các lập trình viên đã không nhìn thấy những thiếu sót này vào thời điểm đó. Cơ bản là Turing hoàn chỉnh để các lập trình viên thông minh có thể làm bất cứ điều gì họ cần (tất nhiên các hạn chế chính là tốc độ, bộ nhớ, lưu trữ, v.v. nhưng những hạn chế này được áp dụng cho tất cả sự phát triển tại thời điểm đó). Không chắc chắn tại sao rất nhiều phiếu giảm, chỉ cố gắng trả lời câu hỏi.

hai chương trình mà bạn đề cập, những chương trình này được bán cho một số khách hàng (không phải là phát triển nội bộ) ? bạn có thể chia sẻ tài liệu tham khảo nơi người ta có thể tìm hiểu thêm về những điều này?
gnat

Thật không may, nhiều ứng dụng (bao gồm cả những ứng dụng mà tôi đã giới thiệu) đã bị mất trong thời gian qua (không có interweb hoặc thậm chí BBS để phân phối vào thời điểm đó). Tôi đã mất các băng cassette về việc những cái này đã bị chặn nhưng chúng là: 1) Không phải trò chơi, 2) không miễn phí, 3) Không tầm thường và 4) nhiệm vụ quan trọng. Tôi không thể nói rằng chúng đã được bán cho nhiều khách hàng, ứng dụng contoal dành cho khách hàng cụ thể, ứng dụng VAT đã được bán lại nhiều lần. Vẫn còn băn khoăn về việc bỏ phiếu (người chọn nit hoặc shoud tôi nói người chọn gnat :-)).
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.