Kỳ công lập trình ấn tượng nhất mà bạn từng chứng kiến ​​là gì? [đóng cửa]


26

Mọi người đều biết về câu ngạn ngữ cũ rằng các lập trình viên giỏi nhất có thể là những đơn đặt hàng có cường độ tốt hơn mức trung bình. Cá nhân tôi đã nhìn thấy mã và lập trình viên tốt, nhưng chưa bao giờ điều gì đó quá vô lý. Vì vậy, câu hỏi là, kỳ công ấn tượng nhất của lập trình bạn từng chứng kiến ​​hoặc nghe nói là gì?

Bạn có thể định nghĩa ấn tượng bằng cách:

  1. Phạm vi của nhiệm vụ trong tay, ví dụ như John đã tự tay phát triển khuôn khổ cho công ty của mình, một công việc có thể so sánh với phạm vi mà 200 công việc khác đang làm đang kết hợp.

  2. Tốc độ, ví dụ Stu đã lập trình toàn bộ hệ điều hành ứng dụng đa tác vụ thời gian thực trên một tuần bao gồm trình biên dịch C và công cụ dòng lệnh shell của chính nó

  3. Sự phức tạp, ví dụ Jane đã nghiên cứu lại toàn bộ ứng dụng LỘC 10 triệu của chúng tôi để hoạt động trong một cụm máy chủ. Và cô ấy đã làm điều đó vào một buổi chiều.

  4. Chất lượng, ví dụ như mã của Charles có tỷ lệ lỗi trên mỗi LỘC thấp hơn 100 lần so với mức trung bình của công ty. Hơn nữa, mã của ông là sạch sẽ và dễ hiểu bởi tất cả.

Rõ ràng, càng nhiều đặc điểm này kết hợp với nhau, và càng cực đoan thì chúng càng ấn tượng.

Vì vậy, hãy để tôi có nó. Kỳ tích ngớ ngẩn nhất bạn có thể kể lại là gì? Vui lòng cung cấp càng nhiều chi tiết càng tốt và cố gắng tránh các truyền thuyết đô thị hoặc cường điệu. Chỉ đăng những gì bạn thực sự có thể chứng minh cho.

Câu hỏi thưởng:

  1. Là nhiệm vụ bất chính là một trong những, hoặc cá nhân thường xuyên làm mọi người ngạc nhiên?
  2. Làm thế nào để bạn giải thích hiệu suất ấn tượng như vậy?
  3. Làm thế nào được lập trình viên công nhận cho công việc tuyệt vời như vậy?

5
Có lần tôi đã thấy một anh chàng ngồi bấm 2 KLocs ... (xin lỗi, không thể cưỡng lại)
DevSolo

"Tốc độ, ví dụ Stu đã lập trình toàn bộ hệ điều hành ứng dụng đa tác vụ thời gian thực trên một tuần bao gồm trình biên dịch C và công cụ dòng lệnh shell của riêng nó" - Erm..bạn có thể muốn giữ cho nó thật.
Jas

Dựa trên các câu trả lời cho đến nay, một số người dễ dàng bị ấn tượng. Tôi đã thực hiện một loạt các 'chiến công' được liệt kê ở đây.
Steven Evers

Hừm, tôi đã suy nghĩ về việc gần như sao chép cái này chính xác vào ngày hôm qua;) Rất cám ơn vì đã hỏi nó!
mlvljr

@DevSolo Này, nếu đây là thẻ đục lỗ hoặc giấy cuộn mà chúng ta đang nói đến, đó có thể là một kỳ công vật lý.
Đánh dấu C

Câu trả lời:


39

Mặc dù tôi không thể chính thức bảo đảm cho điều đó, nhưng tôi luôn ấn tượng với Chris Sawyer khi phát triển Rollercoaster Tycoon gần như hoàn toàn bằng ngôn ngữ lắp ráp.


4
Thật điên rồ!!!
nanda

1
-.- +27 cho một cái gì đó chúng tôi đã thảo luận ít nhất hai lần trên trang web này.
Đánh dấu C

31

Nhanh chóng nghịch đảo căn bậc hai . Làm thế nào một người nào đó có thể đưa ra một cái gì đó như thế là hoàn toàn vượt ra ngoài tôi.


1
Hum ... Điều đó có thể (cực kỳ) thông minh, nhưng nó giống như 6 dòng mã và chỉ là một khối xây dựng nhỏ của một ứng dụng lớn hơn nhiều. Tôi không hiểu làm thế nào là cực đoan trong bất kỳ kích thước nào tôi liệt kê.
David Reis

11
David Reis, điều này rất có thể tối ưu hóa một nút cổ chai quan trọng một cách khéo léo. Đừng nhầm lẫn số lượng dòng với số lượng công việc cần thiết để viết chúng.

2
@David, tôi không biết tại sao bạn khăng khăng rằng các kỳ công lập trình phải được thực hiện trong một khoảng thời gian rất ngắn để trở thành một kỳ công?

2
Đúng, đó là một kỳ công, 600 dòng mã được viết trong một ngày so với 6 dòng mã được tạo trong 100 ngày, nếu cả hai làm điều tương tự? Tôi nghĩ đó là cái sau, nhưng số dặm của bạn có thể thay đổi.
Joonas Pulakka

6
@David, tôi không đồng ý rằng mọi vấn đề đều có thể được giải quyết trong thời gian vô hạn. Bạn có thể muốn đọc joelonsoftware.com/articles/HighNotes.html . "Vấn đề thực sự với việc sử dụng nhiều lập trình viên tầm thường thay vì một vài người giỏi là dù họ làm việc bao lâu, họ không bao giờ tạo ra thứ gì đó tốt như những gì các lập trình viên vĩ đại có thể tạo ra."

16

Trò chơi arcade sớm.

Hoàn toàn bị hạn chế bởi bộ nhớ, sức mạnh xử lý, I / O ...

Những gì các lập trình viên đạt được trong môi trường này là tuyệt vời.

Ví dụ Pacman - Hoàn hảo. Vẫn có thể chơi sau tất cả những năm này.


2
Pacman rất nổi tiếng không hoàn hảo. Nó bị trục trặc khá tệ khi bộ đếm mức tràn một byte. ;)
Mason Wheeler

Xuất sắc! Theo Wikipedia: "Pac-Man có màn hình tiêu diệt nổi tiếng, thường được gọi là Màn hình bom Pac-Man. Bộ đếm cấp độ của trò chơi là một byte 8 bit duy nhất và do đó chỉ có thể lưu trữ 256 giá trị riêng biệt (0 Hay255) Việc đạt đến cấp độ 256 khiến bộ đếm được sử dụng trong khi vẽ trái cây tràn về 0, khiến 256 trái cây và bảy khoảng trống được rút ra. Tuy nhiên, nó có thể được sửa bằng một miếng vá. "
Conor

1
Con thoi không gian sớm có lẽ ???
Công việc

Bà Pac-Man vượt trội hơn nhiều
Tim Goodman

1
@Mason, bạn thậm chí có thể lấy nó trên áo phông! errorwear.com/lover-pacman.php

15

Có một lập trình viên nơi tôi làm việc đã thực hiện những điều sau đây hơn một lần.

Ví dụ gần đây nhất là một dự án trong nhóm của chúng tôi được giao cho 3 người. Đó là một ứng dụng LOB phức tạp với lịch trình 6 tháng (đó là một mốc thời gian cực kỳ tích cực).

Tuần mã hóa đã bắt đầu, 1 trong 3 người bỏ việc (vì lý do cá nhân) và một người khác nghỉ phép đột ngột. Lập trình viên đơn độc còn lại về nhà để bắt đầu lập trình và trở lại 3 tháng sau với ứng dụng hoàn thành.

CHỈNH SỬA

Chỉ cần thêm một số làm rõ. Mã kết quả gần như hoàn hảo, theo yêu cầu và nhóm QA của chúng tôi chỉ có thể ghi lại 3 lỗi.


Anh ấy / cô ấy đã phải kéo hơn 100 tuần làm việc để đạt được kỳ tích đó. Tôi cá là anh ấy / cô ấy đã trải qua một tấn caffeine.
Ali

3
Người đàn ông huyền thoại tháng hành động. Đưa 2 người ra khỏi dự án == giảm một nửa dòng thời gian! Mặc dù điều này có ý nghĩa rằng một nhà phát triển tập trung có thể hoàn thành công việc nhanh hơn là cố gắng phối hợp 3 người.
CodexArcanum

Nếu người đó bao giờ rời khỏi công ty về các điều khoản xấu (không có thời gian trade-off kiến thức), công ty sẽ gặp rắc rối lớn ...
Onion Knight

3
@bjarkef - mã là đỉnh cao. Lập trình viên này là lập trình viên giỏi nhất của công ty chúng tôi và khung thời gian rất ngắn không làm giảm chất lượng bình thường mà chúng tôi thường nhận được từ anh ấy.
Walter

1
@Walter, bạn không thể ước tính axcurur cho đến khi bạn thực sự đã làm nó mâu thuẫn khi bạn cần số. Điều này làm cho các ước tính về phía đông khi bạn đã thực hiện nhiệm vụ trước đó và khó khăn khi bạn không biết. Chừng nào bạn không đánh giá thấp khách hàng, họ sẽ rất vui vì cuối cùng lại rẻ hơn dự kiến.

13

Có lẽ tôi chỉ thể hiện tuổi của mình, nhưng tôi nghĩ một số kỳ công thực sự ấn tượng của lập trình đang bị bỏ qua.

Steve Wozniak, Apple Disk II / RWTS

Steve đã thiết kế phần cứng và phần mềm cùng nhau, sử dụng các thủ thuật thực sự thú vị trong phần mềm để loại bỏ rất nhiều sự phức tạp (và chi phí) trong phần cứng. Các ổ đĩa mềm thông thường đã sử dụng đèn LED và cảm biến quang gần trung tâm của đĩa để chiếu qua lỗ được đục trên đế đĩa. Đầu ra từ bộ cảm quang được kết nối với bộ xử lý bị gián đoạn để bộ xử lý sẽ biết khi nào nên bắt đầu thói quen thời gian của mình để chờ đúng khu vực trên bản nhạc nằm dưới đầu đọc / ghi (mặc dù một số "đĩa cứng" được sử dụng có một lỗ hổng để báo hiệu sự bắt đầu của từng khu vực thay vì chỉ một lần bắt đầu theo dõi).

Steve đã loại bỏ phần cứng đó bằng cách thiết kế phần mềm để mã hóa dữ liệu theo cách cho phép bạn bắt đầu đọc từ một vị trí tùy ý trên đĩa, và không chỉ giải mã chính dữ liệu mà còn tìm ra vị trí (theo logic) trong bản nhạc bạn đang theo dõi. Ổ đĩa II không có thiết lập LED / photsensor và hoàn toàn bỏ qua (các) lỗ hổng trong đĩa mềm.

Gordon Letwin, HPFS

Gordon Letwin là một kiến ​​trúc sư (và lập trình viên) trong nhóm OS / 2. Ít nhất là khi tôi nghe câu chuyện, có lúc anh ấy đi nghỉ để tránh xa mọi thứ và dành ba tuần (hoặc hơn) đi thuyền trên du thuyền của mình (vâng, những nhân viên MS đầu tiên có thể mua những thứ như thế ... ) ... nhưng để không bị nhàm chán, anh quyết định mang theo máy tính xách tay của mình.

Khi anh trở về, anh đã viết, gỡ lỗi và làm việc HPFS - hoàn toàn bằng ngôn ngữ lắp ráp Intel 386. Mã anh viết cuối cùng đã được bán dưới dạng "HPFS386", độc quyền (ít nhất là tại thời điểm đó) cho phiên bản LAN Manager của OS / 2. Một đội khác sau đó đã trải qua một cái gì đó giống như sáu tháng viết một phiên bản trong C mà đã trở thành HPFS "bình thường" bao gồm trong phiên bản bình thường của OS / 2 (và sau IBM và MS đã chia tay, IBM cập nhật và tái biên dịch mã C để có được họ "HPFS386"). Mặc dù đã được sửa đổi và cập nhật kể từ đó, nếu bạn công bằng về mọi thứ, NTFS có thể được gọi là "HPFS 2.0" (hoặc có thể là 3.0) - không có gì phải bàn cãi rằng hệ thống tệp tốt nhất hiện tại của Microsoft vẫn nguồn gốc từ những gì anh ta thiết kế.

Băng thông qua B220

Những hiện thân này (ít nhất là IMO) sự khởi đầu thực sự của lập trình hướng đối tượng. Trường hợp các băng IBM (ví dụ) có "nhãn" để nói về định dạng dữ liệu trên băng, băng Burroughs đã phát triển một quy ước (tôi không nghĩ có ai biết chắc ai đã bắt đầu nó) về việc đặt một thói quen nhỏ băng sẽ hiểu dữ liệu và cách nó được định dạng, do đó bạn có thể thao tác dữ liệu một cách chính xác mà không cần biết chi tiết về cách nó được định dạng. Nói cách khác, một vài "khối" đầu tiên trên băng về cơ bản là một vtable ở dạng bền. Về cơ bản, bạn sẽ đọc vtable vào bộ nhớ, sau đó sử dụng các phương thức được xác định để thao tác dữ liệu trên phần còn lại của băng. Tất cả đều rất gọn gàng và đơn giản (nếu chỉ hơi ít hơn hoàn toàn di động).


11

John Carmack thường xuyên gây ấn tượng với tôi bằng những chiến công lập trình sử thi. Theo một câu chuyện, anh ta đã chán trong phòng khách sạn của mình, vì vậy anh ta đã viết công cụ chiếu sáng Doom 3 trên máy tính xách tay của mình vào cuối tuần.


2
Đáng tiếc anh ta đã không viết một trò chơi thực tế để đi với nó.
DeadMG

10

Mặc dù mục đích đáng ngờ của nó, tôi vẫn còn lo lắng về một bản mô tả người sử dụng captcha cho MegaUpload . Đó là tập lệnh GreasMonkey được viết bằng JavaScript có bộ giải mã bitmap và mạng thần kinh nhận dạng các chữ cái trong hình ảnh xác thực và tôi nhắc lại, tất cả điều này được tạo bằng JavaScript.


1
Một cái gì đó để cho người tiếp theo rên rỉ với bạn về việc không thể làm tốt công việc vì những hạn chế đặt ra cho họ.
Jon Hopkins

10

Miguel de Icaza - dự án Mono.

(Anh ấy cũng cực kỳ hài hước, hóm hỉnh và thú vị - ít nhất là từ cuộc nói chuyện ngắn gọn mà tôi thấy anh ấy đưa ra và nghe một số cuộc phỏng vấn podcast)


+1 Anh chàng rõ ràng là anh em sinh đôi hoặc có lẽ là sinh ba, tất cả đều mang tên anh ta. Không có cách nào mà một người có liên quan đến tất cả những gì anh ta đang có, và ở mức độ chi tiết như vậy.
Dan Rosenstark

8

Anders Hejlsberg: ngôn ngữ Turbo Pascal và trình biên dịch . Tôi vẫn nghĩ sau ngần ấy năm, TPC là một kiệt tác về công nghệ phần mềm. Nó là trình biên dịch mã gốc nhỏ gọn nhất và nhanh nhất (bắt đầu từ một số phiên bản nhất định cũng tối ưu hóa) mà tôi từng thấy. Trong Borland Pascal IDE về cơ bản không có "biên dịch". Bạn đã sửa đổi mã của mình, nhấn F9 và xem chương trình của bạn chạy ngay lập tức và đó là trên máy 8 MHz hoặc 12 MHz. TPC sau đó đã phát triển thành Delphi, sau đó Hejlsberg gia nhập Microsoft và đồng tác giả C #.

Tôi rất muốn xem qua các nguồn của các phiên bản TPC trước đó, nhưng thật không may mặc dù có rất nhiều yêu cầu Borland không bao giờ mở chúng.

Trình biên dịch của Hejlsberg được lấy cảm hứng từ cuốn sách này: Niklaus Wirth, Thuật toán + Cấu trúc dữ liệu = Chương trình


Delphi vẫn có một trình biên dịch thực sự nhanh chóng. Tôi đoán đó là lý do tại sao nó biến mất mà không hỗ trợ sửa đổi và tiếp tục.
Joeri Sebrechts

6

Người giám sát đào tạo của tôi tại Gemplus (nay là Gemalto) đã viết trình thông dịch và hệ điều hành JavaCard đầu tiên trong thời gian đào tạo đại học 3 tháng của chính mình. Anh ta một tay sản xuất mã từ spec. Để sản xuất phiên bản v.2, Gemplus đã thành lập một nhóm 30 người đàn ông, không có anh chàng, làm việc trong hơn một năm. Khi hoàn thành nhưng không thể có được hiệu suất tốt, họ đã gọi anh ta để được giúp đỡ, và trong vài ngày, anh ta và một đồng nghiệp của anh ta đã chỉ ra hàng tá nút thắt.

Thẻ Java là một tập hợp con của Java dự định chạy trong các thiết bị rất nhỏ. Việc triển khai của ông chạy trong thẻ thông minh, có xung nhịp vài MHz và RAM 2 hoặc 3 KB.

Chỉ để cho vui thôi câu hỏi liên tiếp


1
Tôi nghĩ rằng tôi đã vượt qua điều 200 người ... Tôi không thể nhớ quá rõ, đó là hơn 10 năm trước. Tôi gửi mail cho anh ấy câu hỏi nào!
Gabriel

1
Chết tiệt, anh chàng đó phải là một cyborg ..
mlvljr

Phải, họ đã hơn 30 tuổi (=
Gabriel

5

Tôi nhớ nó rất rõ ràng; trên trường trung học, một bạn cùng lớp đã mã hóa một trò chơi điện tử lái xe đầy đủ trong một vài bài học với QB45 (Quick Basic 4.5). Cuộn dọc, đồng hồ bấm giờ, cuộc sống, cấp độ; Tôi đã hoàn toàn sốc.


1
Tôi thấy một anh chàng làm điều đó với một trò chơi phiêu lưu văn bản ở Lisp. Bản thân nó không ấn tượng, nhưng trong thời gian anh ấy đã làm nó trong ... wow.
Michael K

5

Git và / hoặc Linux

Linus Torvalds đã viết một kernel hệ điều hành và một hệ thống kiểm soát phiên bản từ đầu. Tôi không biết ai có năng suất tương tự.


16
Một phổ biến như Linux là, thật dễ dàng để vượt qua khó khăn và / hoặc độc đáo liên quan. Nó gần như hoàn toàn là một bản sao của một hệ thống hiện có. So với (ví dụ rõ ràng) Dave Cutler đã viết RSX / 11, VMS và Windows NT từ đầu, mỗi tác phẩm mới và duy nhất (và, đối với những người quan tâm, hệ thống tệp VMS bao gồm kiểm soát phiên bản) Linus đã không ' thậm chí còn làm cho nó lên bản đồ.
Jerry Coffin

1
Kudos cho VMS, nhưng với lý do tương tự, bạn phải giảm giá NT. Wikipedia cho biết "[...] do Dave Cutler dẫn đầu để xây dựng Windows NT và nhiều yếu tố của thiết kế phản ánh trải nghiệm trước đó của DEC với VMS và RSX-11 của Cutler.". Dù sao, tôi thấy Git ấn tượng.
LennyProgrammer

@ Lenny222: mặc dù chắc chắn rằng bạn có thể tìm thấy sự tương đồng đáng kể giữa VMS và Windows NT, nhưng nó thậm chí không gần như là một bản sao như Linux. Tôi cũng nghĩ khá cao về Git - nhưng nếu nó không tồn tại, tôi có thể nghĩ ra ít nhất hai hoặc ba người khác sẽ hoạt động tốt ở vị trí của nó.
Jerry Coffin

5
Linus đã không làm việc một mình trên Linux trong khoảng một tháng và sau đó biến nó thành một dự án cộng đồng rất thành công? Thực sự công việc tuyệt vời, nhưng tôi sẽ không phân loại là một kỳ công cá nhân về lập trình, mà là một dự án nguồn mở hợp tác rất thành công.
David Reis

1
Tôi nghĩ những gì chúng ta nhận được ở đây là thực tế là bây giờ chúng ta có người dùng X sử dụng linux ở nhà ... Tôi cho rằng bạn có một hộp VMS trong nhà của bạn? Cho rằng đó không phải là một tác phẩm của một tác giả duy nhất ... ngược lại nếu anh ta không thực hiện nó, những tác phẩm quan trọng được xếp hàng để làm điều đó thay vào đó?
RobotHumans

5

Richard M Stallman đến đỉnh điểm của tôi. Người đàn ông này bắt đầu cống hiến cho GNU Emacs, GCC, GDB và nhiều chương trình đáng chú ý khác. Ông thậm chí còn tiếp tục là tác giả của GPL gốc. Tôi đã nghe truyền thuyết về anh ta nói rằng, anh ta vào một hang động trong 18 tháng và trở về với hơn 150.000 dòng mã tạo nên trình biên dịch C của bộ GCC. 150.000 LỘC đã cho đá giường cho g ++ sau này. Nói theo cách riêng của mình, Emacs bắt đầu làm biên tập văn bản, sau đó nó trở thành một lối sống, và bây giờ nó là một tôn giáo cho một số người trong chúng ta. Thậm chí ngày nay, các nguyên tắc thiết kế của Emacs được sử dụng trong nhiều chương trình thành công.

Hệ thống TeX của Donald E Knuth là một chương trình khác xuất hiện trong đầu khi nghĩ về những tuyệt tác lập trình.


Bạn nên thử đọc TeXbook. Không chỉ dành cho người phàm.

Việc tạo ra GPL không phải là một kỳ tích ấn tượng . Nó giống như tự tin vào Singletons.
DeadMG

4

Trong lớp học của tôi, bạn cùng lớp của tôi đã tạo ra một hệ điều hành (mặc dù rất cơ bản nhưng nó đã khởi động từ đĩa mềm và thực hiện các thói quen cần thiết) như một yêu cầu dự án trong vòng dưới 30 ngày. Thời lượng bao gồm cả việc đọc / nghiên cứu cần thiết và mã hóa thực tế.

Tôi nhớ os.com gửi thư liệt kê những người đàn ông làm anh ta nản lòng nói rằng anh ta sẽ không làm điều đó trong vài ngày đó và tôi cũng đã thấy anh ta đi bộ qua ký túc xá lúc 5 giờ sáng trong trạng thái nửa tỉnh nửa mê nói chuyện. :-)

Anh ấy là một lập trình viên tuyệt vời.


4

Tôi sẽ không nói bất cứ điều gì, nhưng ai đó đã nói với "Ruby là một kỳ công", vì vậy

John McCarthy với bản gốc hàm đệ quy của các biểu tượng và tính toán của họ bằng cách MÁY , tức là giấy, trong đó ông định nghĩa Lisp trở lại trong năm 1960, khi ifđược một khái niệm người đã chỉ mới bắt đầu suy nghĩ nghiêm túc về. Nói về việc đi trước thời đại của bạn.


tham khảo tốt đẹp. tôi là người đã kết hợp với ruby, vì sự thanh lịch hơn so với quy ước. điều này cũng đi trước thời đại
RobotHumans

1
McCarthy đã làm một bài báo toán học. Chỉ sau đó, người ta mới thấy rằng nó có thể được chuyển đổi thành mã thực tế.

1
@ Thorbjørn Ravn Andersen - Tôi đã cẩn thận sử dụng "định nghĩa" trái ngược với "thực hiện".
Inaimathi

@Thor Điều đó có phần giống như từ chối tín dụng Arthur Clarke vì đã phát hiện (hoặc phát minh) quỹ đạo không đồng bộ hình tròn đơn giản chỉ vì anh ta không thể chế tạo tên lửa để đặt vệ tinh ở đó, hoặc vì công nghệ này chưa tồn tại.
Đánh dấu C

4

Trình biên dịch Symantec / Zortec C ++ của Walter Bright theo kịp các trình biên dịch được thực hiện bởi các nhóm lập trình viên khổng lồ. Sau đó, anh thiết kế và thực hiện D.




0

Lập trình trò chơi video 8 bit trên máy tính từ thập niên 80 (ví dụ: Commodore 64), một số trò chơi khá hay là ngôn ngữ máy và kích thước của chúng thường nhỏ hơn một bitmap cho biểu tượng Windows ;-) Tối ưu hóa ở mức tốt nhất

Geos (hệ điều hành WYSIWYG cho Commdore 64) rất ấn tượng vào thời điểm đó


-2

Tôi không chắc chắn rằng điều này thực sự ... nhưng đồng bào đã phát triển ruby. Tôi không thể vượt qua sự tao nhã của ngôn ngữ. Và tôi tin rằng đó là ngôn ngữ đầu tiên hỗ trợ gõ động, mặc dù tôi không phải là người bắt đầu với punchcards và viết lắp ráp để tôi có thể bị nhầm lẫn.


3
Đó không phải là ngôn ngữ đầu tiên với kiểu gõ động, và không, bạn không nên bắt đầu với punchcards để biết điều này.
Jas

-3

David Heinemeier Hansson tạo ra Rails.

Lần đầu tiên tôi cài đặt Rails và thiết lập một trang web thử nghiệm dựa trên cơ sở dữ liệu và nó đã tự động thực hiện tất cả các công cụ khung và CRUD, thiết lập trang web thử nghiệm và nó giống như lần đầu tiên tôi mở mắt trước những gì có thể được thực hiện trước bạn bắt đầu lập trình. Điều đó thực sự ấn tượng và tôi đã thấy những ý tưởng từ đó xuất hiện ở mọi nơi trong các ngôn ngữ / nền tảng khác kể từ đó.


Làm thế nào đây là một kỳ công của lập trình?
David Reis

thực tế là nó làm rất tốt trong việc đặt các bảng với đơn giản, thuộc về, habtm ... hơn nữa nó trừu tượng hóa kết nối cơ sở dữ liệu thành một cấu trúc lớp học bất khả tri trong đó gần như là phép thuật và tất cả những gì bạn phải làm là một đường ray mới -d (dbtype) trình tạo gói và rake db: tạo bộ lệnh db: di chuyển. Giàn giáo tạo cho một cơ sở để làm việc là tốt đẹp. có vẻ như ai đó không thích ruby ​​/ rails vì những thứ này bị hạ thấp khá khó khăn trong khi chúng là những cách tiếp cận mới cho sự thanh lịch theo quy ước
RobotHumans

Sau một số suy ngẫm, tôi nghĩ đó là bởi vì chúng tôi đã bị ấn tượng bởi bản chất nghệ thuật của thứ trái ngược với năng lực kỹ thuật
RobotHumans

Đó là một cách suy nghĩ hoàn toàn khác - làm cho mọi thứ hoàn toàn hướng tới những gì sẽ là lý tưởng hơn là những gì là đủ. Nó giống như tất cả các nhà phát triển web của chúng tôi đã lái xe trong các mẫu Model T và đột nhiên đường ray bật lên và đó là một chiếc BMW hiện đại. Đó là một sự thay đổi lớn về sự đơn giản và thân thiện với người dùng về mặt nhà phát triển khi người dùng và tôi đã thấy rất nhiều nền tảng khác được xây dựng dựa trên những ý tưởng đó trong những năm qua.
glenatron

1
Đủ công bằng, nhưng lưu ý rằng câu hỏi của bạn không đề cập đến tên của anh chàng, những gì anh ta đã làm, khi anh ta làm điều đó, vv Nó chỉ nói: "Ruby rất tuyệt". Chó con cũng rất đẹp, nhưng đó không phải là câu trả lời cho câu hỏi này.
David Reis
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.