MUMPS còn sống không? [đóng cửa]


11

Tại nơi làm việc đầu tiên của chúng tôi, chúng tôi đang sử dụng MUMPS tiêu chuẩn kỹ thuật số trên máy nhân bản PDP 11 (TPA 440), sau đó chúng tôi đã chuyển sang MUMPS tiêu chuẩn Micronetic chạy trên máy Hewlett-Packard, HP-UX 9, khoảng đầu thập niên 90.

Vẫn còn MUMPS còn sống? Có ai sử dụng nó? Nếu có, xin vui lòng viết một số từ về nó: bạn đang sử dụng nó trong chế độ nhân vật, nó có hoạt động như máy chủ web không? v.v. (ý tôi là, bộ phim cũng vậy.)

Nếu bạn đã được sử dụng nó, cảm giác của bạn về nó là gì? Bạn có thích nó không?


1
Tôi không nghĩ có ai thích thứ gì đó trông như thế này . Ít nhất perl là biểu cảm.
imgx64

13
"MUMPS còn sống không?" - Có, nhưng tất cả các nhà phát triển đang tự sát.
Steven Evers

@ imgx64 Trời ơi trông thật kinh khủng!
TheLQ

Bạn không cần sử dụng dạng lệnh ngắn, "DHSY =% YK% H,% YQ", bạn nên viết tên lệnh đầy đủ (và sử dụng tên nhãn / biến dài hơn): "Do HourCount Set Year =% YearParam Kill% HourParam ,% YearParam Thoát ". Ngoài ra, sau nhiều năm sử dụng dạng lệnh ngắn, tôi đã viết một chương trình 20 dòng với các lệnh dạng dài và các biến được đặt tên dài. Đồng nghiệp của tôi đã nói: "được thôi, đó là một trò đùa tốt, nhưng đừng làm lại", nó khó đọc hơn 10 lần so với các lệnh ngắn.
ern0

Câu trả lời:


11

Intersystems bán một công cụ phái sinh MUMPS: http://www.intersystems.com

Một số người thú vị nhất trong MUMPS có lẽ ở đây: http://www.outoftheslipstream.com/

Tôi đã bắt đầu viết blog về Cache (dẫn xuất MUMPS) vài năm trước: http://cachetastic.blogspot.com/ (nhưng sau đó đã thay đổi công việc)

Đã ra khỏi thế giới đó được vài năm, tôi nghĩ rằng phong trào NoQuery có lẽ là điều tốt nhất và tồi tệ nhất xảy ra với MUMPS. Cuối cùng, nó có khả năng vừa minh oan vừa giết chết nó. Bởi vì ai đó, tại một số điểm, sẽ phát minh lại cơ sở dữ liệu và cấu trúc truy vấn của MUMPS gần như giống hệt nhau, nhưng không có liên quan đến truyền thống MUMPS. Sau đó mọi người sẽ phát cuồng về hệ thống lưu trữ mới này. Nhưng không ai sẽ chọn một dẫn xuất MUMPS một lần nữa.

Ví dụ, một hoặc hai tháng trước, tôi đã nói chuyện với một đồng nghiệp về việc sử dụng redis để lưu trữ một cái gì đó trong ứng dụng Django của chúng tôi. Chúng tôi đã có một số lượng lớn các bản ghi được xử lý bằng ba ba khóa và cần nhanh chóng nhận được các tập hợp con khớp với một hoặc hai trong số các khóa này (nhưng các kết hợp khác nhau ở các thời điểm khác nhau).

Đây là loại mà MUMPS ăn cho bữa sáng. Nhưng chúng tôi đã gặp khó khăn trong việc ép vào cấu trúc cặp khóa của redis. Ngay cả với từ điển. (Điều tương tự cũng đúng với memcached, v.v.) Lần đầu tiên trong đời, tôi thấy mình thực sự hối hận vì không thể viết mô-đun này trong Cache ObjectScript.

Một số suy nghĩ khác về Cache tại đây:

Tốt: http://cachetastic.blogspot.com/2008/07/ok-after-mentioning-some-bad-things.html

Xấu: http://cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-poseitive.html


9

Ngôi sao hài hước nên nhắc đến Redis. Tôi thực sự đã đảo ngược hầu hết tất cả các hành vi của Redis bằng cách sử dụng Quai bị (cả Cache và GT.M). Mô phỏng cấu trúc cặp khóa / giá trị đơn giản và cơ bản của nó đã là một miếng bánh và các khách hàng Redis mà tôi đã kiểm tra thậm chí không biết họ đang nói chuyện với cơ sở dữ liệu Quai bị thay vì Redis thích hợp.

Tuy nhiên, giống như interstar nói, cơ sở dữ liệu Quai bị có khả năng nhiều hơn về cả cấu trúc dữ liệu của nó (thực ra cơ sở dữ liệu Quai bị có thể dễ dàng mô phỏng tất cả 4 loại cơ sở dữ liệu NoQuery: khóa / giá trị, dạng bảng, tài liệu và biểu đồ và cũng có thể mô hình hóa dbs quan hệ và đối tượng - tất cả cùng một lúc nếu cần) và cân bằng tự động được sắp xếp hợp lý và cân bằng giữa bộ nhớ so với trên đĩa. Không giống như các cơ sở dữ liệu NoQuery mới xuất hiện được vài năm, các công nghệ Quai đã trưởng thành, đã thử, đã được thử nghiệm, được hỗ trợ tốt và có sẵn các gói phân tích và quản trị và có loại hiệu suất mà nhiều cơ sở dữ liệu NoQuery như CouchDB sẽ sử dụng .

Vậy tại sao các nhà cung cấp Cache và GT.M không quảng bá mạnh vào thị trường NoQuery thay vì để ai đó phát minh lại bánh xe của họ như bạn nói?

Về sự mệt mỏi cũ khi cãi nhau về ngôn ngữ và việc sử dụng ví dụ cổ xưa và lỗi thời đó từ trang Wikipedia:

a) Cơ sở dữ liệu Quai bị có thể được truy cập bởi ngôn ngữ hiện đại gợi cảm của thú cưng của bạn nếu bạn muốn

b) phong cách lập trình đó đã xuất hiện cùng với chiếc hòm và được viết vào thời điểm đó để tăng hiệu suất đáng kinh ngạc từ các máy tính PDP có sức mạnh xử lý ít hơn chip trong đồng hồ của bạn. Mã hóa quai bị hiện đại thực sự rất giống với Python và có thể sạch sẽ, dễ đọc và có thể bảo trì.

c) Giống như bất kỳ ngôn ngữ nào, có những ví dụ hay bạn có thể tìm thấy và những ngôn ngữ tồi tệ. Đừng cho rằng mã hóa quai bị cần phải mờ và lỗi thời như ví dụ trên trang Wikipedia.

.. và Mason, kết luận của tôi sẽ là có lẽ bạn không quen thuộc với cảnh quan cơ sở dữ liệu như bạn nghĩ! :-) Nếu bạn đã có bất kỳ hình thức điều trị y tế nào trong đời, thông tin của bạn sẽ được thông qua nhiều hệ thống Quai bị trên đường đi, bao gồm cả những hệ thống quản lý yêu cầu xét nghiệm của bạn. Nội dung của tờ báo hàng ngày của bạn có thể được quản lý bởi hệ thống Quai bị và ngay cả bánh pizza bạn đặt trực tuyến cũng có thể thông qua hệ thống Quai bị. Hậu cần của các mặt hàng bạn có thể đã chuyển ra nước ngoài có thể được quản lý thông qua hệ thống Quai bị và nếu bạn tình cờ là một nhà nghiên cứu cần một số kim loại hoặc gốm sứ ưa thích, có lẽ bạn đã đặt hàng chúng qua hệ thống Quai bị.

Một trong những lý do bạn hiếm khi nghe về cơ sở dữ liệu thực sự đáng ngạc nhiên là các nhà cung cấp thường giao dịch trực tiếp với các nhà phát triển ứng dụng / hệ thống thay vì người dùng cuối, vì vậy cơ sở dữ liệu thường được nhúng vào hậu trường vào các sản phẩm.


1
Tôi nghĩ rằng ngôn ngữ không phải là xấu. Tôi đã không thử nhưng nó phải khá nhanh trên phần cứng hiện đại. Phiên bản mới nhất của MSM đã hỗ trợ lập trình có cấu trúc: biến cục bộ (Lệnh mới), tham số hàm, chương trình con nội tuyến cho nhiều dòng. Chúng tôi rất hài lòng với các tính năng này và chúng tôi đã tạo ra một loạt các tiện ích: trình xem danh sách, menu, v.v ... Cuối cùng, chúng tôi đã hết ngăn xếp, vì vậy chúng tôi đã yêu cầu Micronetic tăng kích thước ngăn xếp. Họ đã biên soạn cho chúng tôi phiên bản tùy chỉnh ngăn xếp 32 độ sâu của MSM thay vì 16 độ sâu mặc định.
ern0

1
Để đẩy lùi Rob một chút, trong khi tôi nghĩ db MUMPS đáng chú ý, tôi tự hỏi nếu chỉ db, được truy cập từ một ngôn ngữ khác vẫn có thể được gọi là MUMPS. Bất cứ ai chọn MUMPS đều mong muốn có thể chạy mã kế thừa. Vì vậy, MUMPS, dù muốn hay không, bằng với ngôn ngữ db +.
Interstar

2
Như tôi đã đề cập ở nơi khác, thảm họa / giải quyết thực sự cho ngôn ngữ là phạm vi động. Tôi không nghĩ rằng bất kỳ kỹ sư nào, ngày nay, có thể biện minh cho việc chọn một ngôn ngữ mà không có các biến cục bộ duy trì cục bộ. Vì vậy, bằng mọi cách, hãy sử dụng db MUMPS làm thành phần hộp đen, nhưng ngôn ngữ vượt quá sự chuộc lỗi và nên được đặt vào phần còn lại.
Interstar

1
Quai bị có phạm vi từ vựng đầy đủ của các biến - nó đã được thực hiện trong nhiều năm, nhưng nhiều người dường như không nhận thấy! Mã quai bị có thể sạch sẽ và hoạt động tốt như bất kỳ ngôn ngữ nào khác. Trong thực tế, Quai bị có rất nhiều điểm tương đồng với Javascript về phạm vi biến đổi. ví dụ: New in Quai bị, về hiệu quả, giống như var trong Javascript. Tuy nhiên, theo mặc định, các biến được phạm vi toàn cầu trong cả hai ngôn ngữ.
Cướp

1
Cướp. Tôi chắc chắn đã không nhận thấy phạm vi từ vựng của các biến trong Cache. Còn ví dụ của tôi trong cacheetastic.blogspot.com/2008/07/ thì sao? Điều đó sử dụng từ khóa "mới", nhưng hoàn toàn KHÔNG phải là quy tắc phạm vi bạn muốn. X trong f và x trong g KHÔNG nên là cùng một biến mà KHÔNG g phải ẩn rõ ràng bất kỳ x nào xảy ra trên ngăn xếp. Điều tương tự được chuyển đổi thành javascript, thay thế "mới" của COS bằng "var" một cách chính xác cho x trong f là không xác định.
liên sao

6

MUMPS còn sống rất nhiều. Nó đã là một trong những hệ thống đáng tin cậy nhất trong tay thích hợp. Các nhân viên lập trình thường nhỏ và thời gian hoạt động rất ấn tượng. Có vẻ như người ta không biết rằng MUMPS bị che khuất, nhưng có thể viết mã rất sáng suốt và có chức năng cao trong một vài nét chính và cấu trúc dữ liệu được MUMPS hỗ trợ làm cho nó cực kỳ mạnh mẽ và rất dễ vận chuyển trên các kiến ​​trúc khác nhau. Tất cả các bệnh viện VA đang sử dụng MUMPS và thời gian sửa chữa trung bình rất nhanh trong hầu hết các trường hợp. Hệ thống VistA được viết bằng MUMPS có thể dễ dàng tải xuống từ Source Forge và bản chất đa phương thức (cơ sở dữ liệu có thể được truy cập bằng nhiều cách, cuộn và cuộn, máy khách mỏng, trình duyệt hoặc RPC hoặc giao diện chương trình khác) của VistA và MUMPS đi kèm thông qua nhiều người đi sâu vào nó. MUMPS là một ngôn ngữ đơn giản với rất ít lệnh và một kiểu dữ liệu. Rất dễ học vì đây là ngôn ngữ được giải thích và để nguyên ngăn xếp và bảng biểu tượng để xem chính xác những gì đang diễn ra khi ứng dụng dừng để gỡ lỗi. VistA đã được sử dụng để điều hành các bệnh viện của Bộ Quốc phòng (Hệ thống chăm sóc sức khỏe tổng hợp, CHCS) cũng như Dịch vụ y tế Ấn Độ (IHS RPMS), và đã từng được sử dụng bởi Dịch vụ y tế công cộng Hoa Kỳ. Nó đã tiết kiệm cho đất nước nhiều triệu đô la chi phí hoạt động. MUMPS chạy trên hầu hết mọi thứ. Nó mô hình gần như bất kỳ mô hình cơ sở dữ liệu nào khác một cách dễ dàng và cung cấp truy cập nhanh đến cơ sở dữ liệu. Mô hình MUMPS thực sự có thể có hiệu suất nhanh hơn với nhiều người dùng hơn trên hệ thống (trong một số trường hợp, do các khía cạnh bộ đệm của MUMPS trong đó các khối con trỏ cần để tìm một khối dữ liệu đã có trong bộ nhớ và chúng không cần phải tìm nạp lại, BTW, chi phí con trỏ cho MUMPS chỉ chạy khoảng 2%, nên hầu hết cơ sở dữ liệu của bạn là dữ liệu người dùng thực tế). MUMPS ban đầu được viết để chạy trên máy 2K. Sự tấn công của công nghệ mới chỉ mở rộng các tính năng đầy đủ của môi trường MUMPS thành một lĩnh vực mà toàn bộ bệnh viện hiện đang được vận hành trên các máy chủ hàng hóa giá rẻ. Ngay từ sớm, MUMPS đã ly dị với phần cứng và được hưởng lợi rất nhiều từ quyết định đó. Chúng tôi không lo lắng về kích thước từ hoặc độ chính xác, hoặc bao nhiêu hoặc lớn. Cơ sở dữ liệu là ràng buộc muộn và phát triển như nhu cầu hồ sơ cụ thể. Không có bản ghi trong bất kỳ cơ sở dữ liệu nào là lớn hơn nó cần phải có. Cơ sở dữ liệu có thể được mở rộng hoặc cắt tỉa theo từng phần của bản ghi hoặc toàn bộ bản ghi. Có phải MUMPS vẫn ở xung quanh?, Bạn betcha? Thay vì nhận 8 người dùng trên PDP-11/34, bạn có thể nhận được vài trăm người dùng trên máy tính để bàn dưới bàn của bạn. Nó đang được sử dụng trong Ngân hàng, Sở giao dịch chứng khoán châu Âu, ngành du lịch (khách sạn và đại lý đặt phòng), một số nhà phụ tùng ô tô và hầu hết các bệnh viện thành công (thương mại, tư nhân hoặc cộng đồng) đang chạy MUMPS dưới một hình thức nào đó. VA hiện có hơn 30 năm lịch sử kết quả cho hơn 9 triệu bệnh nhân của họ. Bản thân nó là điều mà không có hệ thống chăm sóc sức khỏe nào khác đạt được, ngoại trừ Bệnh viện Beth Israel / Deaconess ở Boston đã có hơn 35 năm kết quả trong hệ thống MUMPS được xây dựng tại nhà của họ. bạn betcha? Thay vì nhận 8 người dùng trên PDP-11/34, bạn có thể nhận được vài trăm người dùng trên máy tính để bàn dưới bàn của bạn. Nó đang được sử dụng trong Ngân hàng, Sở giao dịch chứng khoán châu Âu, ngành du lịch (khách sạn và đại lý đặt phòng), một số nhà phụ tùng ô tô và hầu hết các bệnh viện thành công (thương mại, tư nhân hoặc cộng đồng) đang chạy MUMPS dưới một hình thức nào đó. VA hiện có hơn 30 năm lịch sử kết quả cho hơn 9 triệu bệnh nhân của họ. Bản thân nó là điều mà không có hệ thống chăm sóc sức khỏe nào khác đạt được, ngoại trừ Bệnh viện Beth Israel / Deaconess ở Boston đã có hơn 35 năm kết quả trong hệ thống MUMPS được xây dựng tại nhà của họ. bạn betcha? Thay vì nhận 8 người dùng trên PDP-11/34, bạn có thể nhận được vài trăm người dùng trên máy tính để bàn dưới bàn của bạn. Nó đang được sử dụng trong Ngân hàng, Sở giao dịch chứng khoán châu Âu, ngành du lịch (khách sạn và đại lý đặt phòng), một số nhà phụ tùng ô tô và hầu hết các bệnh viện thành công (thương mại, tư nhân hoặc cộng đồng) đang chạy MUMPS dưới một hình thức nào đó. VA hiện có hơn 30 năm lịch sử kết quả cho hơn 9 triệu bệnh nhân của họ. Bản thân nó là điều mà không có hệ thống chăm sóc sức khỏe nào khác đạt được, ngoại trừ Bệnh viện Beth Israel / Deaconess ở Boston đã có hơn 35 năm kết quả trong hệ thống MUMPS được xây dựng tại nhà của họ. ngành công nghiệp du lịch (khách sạn và đại lý đặt phòng), một số nhà phụ tùng ô tô và hầu hết các bệnh viện thành công (thương mại, tư nhân hoặc cộng đồng) đang chạy MUMPS dưới một hình thức nào đó. VA hiện có hơn 30 năm lịch sử kết quả cho hơn 9 triệu bệnh nhân của họ. Bản thân nó là điều mà không có hệ thống chăm sóc sức khỏe nào khác đạt được, ngoại trừ Bệnh viện Beth Israel / Deaconess ở Boston đã có hơn 35 năm kết quả trong hệ thống MUMPS được xây dựng tại nhà của họ. ngành công nghiệp du lịch (khách sạn và đại lý đặt phòng), một số nhà phụ tùng ô tô và hầu hết các bệnh viện thành công (thương mại, tư nhân hoặc cộng đồng) đang chạy MUMPS dưới một hình thức nào đó. VA hiện có hơn 30 năm lịch sử kết quả cho hơn 9 triệu bệnh nhân của họ. Bản thân nó là điều mà không có hệ thống chăm sóc sức khỏe nào khác đạt được, ngoại trừ Bệnh viện Beth Israel / Deaconess ở Boston đã có hơn 35 năm kết quả trong hệ thống MUMPS được xây dựng tại nhà của họ.


6

Có một vài câu hỏi nghiêm trọng về bệnh quai bị trên SO:

/programming/tagged/mumps


Tại sao các downvote? Câu hỏi là vẫn còn MUMPS còn sống? Có ai sử dụng nó? - chắc chắn đây là bằng chứng có liên quan về việc ai đó nghiêm túc viết mã mới và / hoặc học MUMPS?
Colin Pickard

4

Có MUMPS là rất nhiều sống. Một phần tốt của Bệnh viện VA tại Hoa Kỳ sử dụng MUMPS.


3
Và phần tốt của bệnh nhân còn sống? :-)
Maniero

8
@bigown: Tất nhiên rồi. Nếu không, họ sẽ vẫn không phải là bệnh nhân.
Mason Wheeler


3

Tôi cũng mới biết về g.tm, nhưng tôi có thể trả lời điều này:

Vâng, Quai bị còn sống. Vẫn có người làm việc trên đó. đây là một số ví dụ:

http://georgejames.com/ người đã viết một máy chủ api Openstreetmap trong gt.m mà tôi đang học.

Hiện tại cũng có các công cụ web dành cho doanh nghiệp hiện đại dành cho g.tm http://gradvs1.mgateway.com/main/

và bằng chứng cuối cùng cho thấy nó còn sống là nó đã được chuyển sang nền tảng đám mây GNU / linux và đám mây mới nhất.

mike



1

Bạn nên đọc nó:

http://thed Dailywtf.com/Articles/A_Case_of_the_MUMPS.aspx

về MUMPS.

Mặt khác, tôi làm việc trong khu vực DC và gặp gỡ mọi người khá thường xuyên mà không chỉ biết MUMPS là gì mà họ thường xuyên làm việc trong đó.


Điều đó .... điều đó làm tôi đau khổ. Tôi cảm thấy cần phải tắm ngay bây giờ. :(
Matt DiTrolio

1
Thật khó để giải thích trong thời đại của SQL, rằng những vấn đề này, mà bài viết liệt kê, là các tính năng. Một chữ cái là dành cho tốc độ. Một loại tốt hơn nhiều so với gõ tự động.
V.v

1

Chà, tôi chưa bao giờ nghe nói về bất cứ ai sử dụng nó, trong bất kỳ bối cảnh hoặc vì bất kỳ lý do gì, ngoại trừ trên Daily WTF. Những kết luận có thể được rút ra từ điều này là tùy thuộc vào người đọc. ;)


1

Ví dụ của Interstar được viết chính xác để sử dụng các hàm:

f ;   
  new x  
  set x=$$g()  
  write x  
  quit  

g()  
  new x  
  set x = 5  
  quit x  

do f  

flà một thủ tục được gọi với một làm. Nếu, như trong trường hợp này, nó không có tham số chính thức, bạn không cần (). Một thủ tục chỉ Thoát và không trả lại bất cứ điều gì.

g()mặt khác là một chức năng. Cái mới xlà rất quan trọng để phạm vi chính xác x. Một hàm được gọi bằng cách đặt trước tên của nó $$và nó QUIT với giá trị trả về. Một hàm phải có một danh sách tham số chính thức được khai báo ngay cả khi nó trống như ở đây. Trên thực tế, bạn có thể viết ví dụ này g()như:

g()  
 quit 5

Bây giờ tất cả sẽ cư xử hoàn hảo. Vì một số lý do, nhiều nhà phát triển Quai bị dường như không nhận thấy hoặc hiểu được sự tồn tại của các chức năng hoặc hiểu sự khác biệt giữa chúng và các quy trình. Tôi nghĩ rằng đây là một trong những lý do tại sao những người mới sử dụng Quai bị giơ tay lên kinh hoàng (không đáng ngạc nhiên) - có rất nhiều mã khủng khiếp ngoài kia.

Được viết như hình trên, đó là tất cả những thứ khá sạch sẽ và đáng kính. Tuy nhiên, tùy thuộc vào lập trình viên để xác định rõ ràng các biến trong các hàm và thủ tục. Để chúng ra ngoài và chúng sẽ có tính toàn cầu và rò rỉ ở mọi nơi. Bí quyết là xây dựng và kiểm tra từng chức năng khi bạn đi cách ly và đảm bảo rằng chúng không dựa vào gì ngoài các tham số chính thức của chúng và khi hoàn thành, chúng không để lại gì.


Bây giờ một trong những lý do bạn thấy mã Quai bị ngoài đó không sử dụng các lệnh mới và nó phụ thuộc vào các biến là toàn cục (vì vậy nó bị hỏng nếu bạn Mới biến) là vì nó được viết tại một thời điểm trước các hàm và phạm vi từ vựng đã được thêm vào ngôn ngữ. Thật không may, có rất nhiều mã di sản ngoài kia và, vâng, cuối cùng nó là một cơn ác mộng để duy trì, nhưng đó là di sản cho bạn. Mặt khác, bạn hoàn toàn có thể viết mã Quai bị sạch, hiện đại, hoạt động tốt, miễn là bạn viết nội dung mới từ đầu mà không phải lo lắng gì.
Cướp

Nhìn vào ví dụ ban đầu của bạn, giá trị x, khi mới trong thủ tục f sẽ tự động có sẵn cho g - đó chỉ là cách thức Quai bị. Theo cùng một cách, những người đã quen với ngôn ngữ cú pháp C rất ngạc nhiên khi họ phát hiện ra rằng phạm vi trong Javascript chỉ được áp dụng cho các hàm, và không, ví dụ, trong các vòng lặp hoặc các khối bên trong một hàm. Đó chỉ là cách nó - một khi bạn biết điều đó, bạn sẽ giải quyết nó một cách phù hợp. Những đặc điểm riêng như vậy không ngăn được mọi người chấp nhận và chấp nhận Javascript.
Cướp

Rob: "Nhìn vào ví dụ ban đầu của bạn, giá trị x, khi mới trong thủ tục f sẽ tự động có sẵn cho g - đó chỉ là cách thức Quai bị." Thật! Và đó là ý nghĩa của việc nói rằng MUMPS có phạm vi động chứ không phải phạm vi từ vựng. Trong ngôn ngữ có phạm vi từ vựng, bạn không cần phải có "x mới" trong hàm g, bởi vì cấu trúc từ vựng của chương trình (nghĩa là g được định nghĩa bên ngoài định nghĩa của f), đủ để đảm bảo rằng xs được giới thiệu trong g và f là hai biến hoàn toàn khác nhau.
Interstar

Cướp. Trên quan điểm rộng hơn, một nhóm lập trình viên MUMPS có kỷ luật tốt, viết từ đầu và cẩn thận sử dụng "mới" để đảm bảo rằng tất cả các biến là cục bộ, có thể tránh được các phạm vi động. Chắc chắn, tôi đồng ý. Nhưng tại sao chúng ta cần kỷ luật sắt và hàng trăm dòng mã bổ sung, để sao chép những gì mọi ngôn ngữ đương đại khác cung cấp cho bạn miễn phí? Ngoài ra, nếu bạn phải đối mặt với mã kế thừa không được viết theo nguyên tắc này, thì gần như không thể đưa nó vào sau, bởi vì bạn không thể biết liệu hệ thống có dựa vào một trong những người không phải là người địa phương này để truyền thông tin xung quanh không .
Interstar

Có các phương thức (cũ hơn) khác để phân tách các biến chương trình con: tất cả các tên biến của các tiện ích hệ thống bắt đầu bằng dấu '%', vì vậy chúng nằm trong "không gian tên hệ thống". Ngoài ra, việc đặt tên biến trong New là về tốc độ: nếu bạn sử dụng lệnh explicite để đẩy các biến được sử dụng lại vào ngăn xếp, trình thông dịch phải không làm gì khi vào một thói quen. Ngoài ra, bạn có thể sử dụng Mới, không có tham số, ẩn tất cả các biến hiện tại.
ern0
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.