Nếu ưu tiên tối ưu hóa phần mềm, nhiều hệ thống trên thế giới có thể vận hành bằng phần cứng cũ
(twitter.com/ID_AA_Carmack)- Nếu thực sự đặt tối ưu hóa phần mềm làm ưu tiên, nhiều hệ thống hơn ta nghĩ có thể chạy trên phần cứng cũ
- Khi tín hiệu giá thị trường tác động lên các tài nguyên tính toán khan hiếm, áp lực tạo ra phần mềm hiệu quả hơn sẽ tăng lên
- Một ví dụ là xây dựng lại các sản phẩm dựa trên ngôn ngữ thông dịch và microservices thành các codebase native đơn khối
- Tuy nhiên, nếu không có năng lực tính toán siêu rẻ và có thể mở rộng cao, việc thử nghiệm và tung ra sản phẩm mới mang tính đột phá có thể sẽ hiếm hơn nhiều
- Chỉ tối ưu hiệu năng thôi là chưa đủ; năng lực tính toán rẻ và có thể mở rộng mới là yếu tố quyết định tần suất thử nghiệm và phát hành sản phẩm
Thí nghiệm tư duy ưu tiên tối ưu hóa
- Nếu tối ưu hóa phần mềm thực sự là ưu tiên hàng đầu, nhiều hệ thống hơn ta nghĩ có thể vận hành trên phần cứng cũ
- Khi tín hiệu giá tác động mạnh lên các tài nguyên tính toán khan hiếm, thị trường sẽ đòi hỏi phần mềm hiệu quả hơn
Các cách triển khai khả dĩ và giới hạn
- Một ví dụ là xây dựng lại các sản phẩm dựa trên ngôn ngữ thông dịch và microservices thành các codebase native đơn khối
- Tuy vậy, nếu không có năng lực tính toán siêu rẻ và mở rộng cao, sản phẩm mới mang tính đột phá có thể sẽ trở nên hiếm hơn nhiều
1 bình luận
Ý kiến trên Hacker News
Có thể lập luận rằng thị trường mua phần mềm nhiều lỗi và kém hiệu quả cũng tốt như phần mềm hoàn thiện cao, và trong hai loại đó, một loại là phần mềm rẻ nhất có thể tạo ra
Điều này giống câu chuyện “thị trường chanh”. Thị trường bán mọi sản phẩm như thể chúng đều có chất lượng cao, nhưng âm thầm hạ chất lượng để giảm chi phí biên. Người mua không thể phân biệt chất lượng cao và thấp trước khi mua nên nhu cầu bị làm cho giống nhau một cách giả tạo, nguyên nhân là bất cân xứng thông tin
Trong AI, chuyện này đã xảy ra và sau này sẽ còn tệ hơn. Người dùng không phân biệt được giữa một ứng dụng học máy tinh vi và việc gọi chu trình vắt của máy giặt là AI. Chính nhãn AI tạo ra mức giá cộng thêm, và người dùng sẽ trả quá nhiều cho máy giặt
Về bản chất, việc trả quá nhiều vì tin rằng phần mềm tệ hại được thiết kế và viết bởi kỹ sư cùng chuyên gia cũng tương tự. 99% phần mềm do IC1~3 viết, và ở hầu hết công ty công nghệ, một nhân viên QA là cơ chế duy nhất nâng chất lượng lên trên mức “đáp ứng tiêu chí nghiệm thu”. Thỉnh thoảng có một nhóm thực tập sinh tụng câu thần chú “LGTM”, nhưng ngay cả vậy cũng hiếm
https://www.lg.com/uk/lg-experience/inspiration/lg-ai-wash-e...
Tôi đã tin chắc rằng nếu sản phẩm tốt hơn thì sẽ thuyết phục được mọi người và tăng trưởng viral, nhưng không phải vậy. Nó có tăng trưởng, nhưng quá chậm nên chỉ sau vài năm đã cạn vốn trước khi đạt điểm hòa vốn
Điều tôi nhận ra là trong một thị trường cạnh tranh, chi phí thấp, tức chất lượng thấp, chính là lợi thế cạnh tranh. Sản phẩm càng lớn thì áp lực cắt giảm chi phí càng lớn, và vì mọi người muốn đồ rẻ, sẽ có ai đó cắt “chi phí”, tức chất lượng, để làm cho rẻ hơn. Công ty chỉ trả mức tối thiểu cần thiết để sống sót và có lãi
Công ty trẻ có thể cố tạo ra chất lượng cao hoặc tạm thời tăng chi tiêu, nhưng cuối cùng sẽ hình thành xu hướng trượt về sự tầm thường ổn định. Điều này hơi khác thị trường chanh, và dường như kết cục không phải là sụp đổ thị trường mà là sự tầm thường ở khắp nơi
Tuy nhiên nếu bảo một người bình thường chọn giữa Slack và Weechat, một client IRC nhanh, họ có khả năng xem phía có UI kiểu terminal, không gọi video, không tích hợp webhook, không avatar hay emoji tùy chỉnh là chất lượng thấp
Hiệu năng cũng là một tính năng. Một lý do lớn khiến Internet Explorer bị Chrome vượt qua là khi ra mắt Chrome nhanh hơn nhiều, và việc các lập trình viên Python nhanh chóng chuyển sang uv/ruff cũng là nhờ cải thiện hiệu năng. Tuy vậy, khi việc chạy Slack mất 5 giây thay vì 10ms, rất ít người còn bận tâm
Điều đó đôi khi xảy ra với phần mềm nhiều lỗi, nhưng nhìn chung mọi người muốn trả ít hơn và trong quá trình đó chấp nhận vài lỗi. Cứ nghĩ xem sẽ phải tính phí bao nhiêu nếu áp dụng quy trình trong đó mọi dòng code đều được nhiều kỹ sư rà soát và dành nhiều thời gian cho QA nghiêm ngặt
Khi sống ở Padova, tôi từng làm phần mềm cho một hiệu sách nhỏ; vì là bạn nên tôi làm nhanh và không lấy nhiều tiền. Nó không hoàn hảo, nhưng có vấn đề thì tôi sửa, vấn đề cũng không nhiều, và bạn tôi hài lòng với thỏa thuận đó. Vì biết mình được tính giá rẻ nên cậu ấy cũng kiên nhẫn
Tôi đã nhiều lần nói rằng nếu đội của chúng tôi nói với khách hàng “dự án đã xong, nhưng nó có nhiều lỗi và ác mộng UI ngang nền tảng back-office này” thì chúng tôi sẽ bị khiển trách, giáng chức hoặc sa thải
Điều này bao gồm cả những công ty như Google, nơi thiếu hỗ trợ từ con người. Hỗ trợ xuất hiện dưới nhiều dạng: có thông tin như tài liệu, video, blog; có người giúp như “Mẹ ơi, Google dùng như thế này”; có hỗ trợ cho đối tượng sử dụng như hệ điều hành, trình duyệt, định dạng; và cũng có thứ nâng đỡ chính cách tôi làm việc, như Excel
Cuối cùng là con người thật. Đây là yếu tố số một giúp cả ERP tệ nhất hành tinh vẫn sống sót. Marketing và bán hàng cũng là tín hiệu rằng có hỗ trợ. Với khách hàng doanh nghiệp, nếu họ chỉ thấy kỹ sư thì đó có thể là tín hiệu xấu. Nhà phát triển thường không làm được những việc khác, mà những việc khác đó lại là hỗ trợ quan trọng
Sản phẩm tốt mà không có hỗ trợ thì cũng chết. Để cạnh tranh với sản phẩm tệ hơn, giảm nhu cầu hỗ trợ như lỗi, vấn đề hiệu năng, nền tảng nhằm giảm chi phí cho đội mình là việc khôn ngoan, nhưng nhất định phải bổ sung hỗ trợ ở những chiều khác. Với nhóm nhỏ, việc dễ nhất là gắn thêm tài nguyên hỗ trợ khan hiếm nhất: con người; sau đó mới cần đến sáng tạo
Ngoài ra cũng phải truyền đạt tốt điểm mạnh. Có người coi trọng một loại hỗ trợ cụ thể hơn, như “có thể sở hữu mã nguồn vs sản phẩm độc quyền”. Nhiều người thích sản phẩm độc quyền có hỗ trợ hơn là mã nguồn
Từ sau năm 1980, thường có thể xem hiệu năng tính toán đã tăng khoảng 1000 lần
Dù kiểm tra phạm vi mảng động tốn 5% chi phí, thực tế còn ít hơn nhiều, và nếu bật ở mọi nơi thì máy tính cũng chỉ còn nhanh hơn khoảng 950 lần mà thôi
Nếu quay lại năm 1980 và bảo mọi người chọn giữa “máy tính nhanh hơn 950 lần, không có cả một lớp lớn lỗ hổng an toàn bộ nhớ, và việc gỡ lỗi dễ hơn vài bậc độ lớn” với “máy tính nhanh hơn 1000 lần nhưng phần mềm vẫn đầy lỗi hoặc còn tệ hơn, và gỡ lỗi là ác mộng”, hẳn người ta đã choáng chỉ với mức 950 lần rồi
Thế nhưng thứ chúng ta chọn là vế sau, và cá nhân tôi cho rằng phe 1000 lần đã làm hỏng phần còn lại
Cuối cùng, khi họ tối ưu để nó chạy hiệu quả trên Sparc 20, công ty có được nền tảng để thành công ở một thị trường rộng hơn. Tối ưu hóa cần được xem là lợi thế cạnh tranh, và trong một số trường hợp có thể là lợi thế cạnh tranh quan trọng nhất
Vì vậy, nếu ép buộc kiểm tra phạm vi, ngôn ngữ đó sẽ mất sức cạnh tranh trong một số tác vụ nhất định
Trong phần lớn trường hợp thì điều này hoàn toàn không quan trọng và nhỏ hơn 5% rất nhiều. Tôi cho rằng cách chia thành phạm vi an toàn/không an toàn hoặc thông thường/hiệu năng là một giải pháp tốt
CPU phổ thông gần với mức nhanh hơn máy thập niên 80 1–2 triệu lần. Với vài trăm đô la, bạn vẫn có thể mua một máy văn phòng tân trang thuộc nhóm nhanh hơn 1 triệu lần
Việc máy tính ngày nay chậm và tạo cảm giác chậm không chỉ đơn giản là vì máy tính chậm, nhưng chuyện đó vẫn đang xảy ra. Một phần nguyên nhân là các ngôn ngữ script liên tục cấp phát bộ nhớ cho những phép toán nhỏ, và do kiểu động nên mỗi biến lại phải lần theo con trỏ; cũng có những người dùng các chương trình cực kỳ kém hiệu quả trong một môi trường vốn đã tệ
Phần lớn chương trình ngày nay được viết theo cách tác giả muốn làm việc, chứ không phải theo cách người dùng mong muốn. Nhiều người không có khái niệm về tối ưu hóa hoặc trực giác về thứ gì chạy nhanh hơn; họ làm cho nó chạy được rồi nghĩ “chương trình này có tốc độ như vậy”
Bản thân ý nghĩ rằng cùng một phần mềm có thể trở nên nhanh hơn đã là một lối nghĩ ngách, và ngay cả trên Hacker News cũng không phải ai cũng nghĩ như vậy
Ngôn ngữ có thu gom rác thường dùng bộ nhớ nhiều hơn vài lần. Chúng không giải phóng ngay bộ nhớ không còn dùng nữa, và ngay từ đầu cũng thường cần cấp phát nhiều hơn
Làm việc ở Google và Facebook khiến tôi cảm nhận được phần cứng rẻ đến mức nào, và trong phần lớn trường hợp tối ưu hóa mã có giá trị thấp đến đâu
Hơn 10 năm trước, Google đã bắt đầu quản lý mức sử dụng tài nguyên trung tâm dữ liệu, và mỗi dự án đều có ngân sách cho các thứ như lõi CPU, dung lượng đĩa cứng, lưu trữ flash, spindle đĩa, bộ nhớ. Các tài nguyên này nhìn chung có thể quy đổi lẫn nhau nên có thể thấy chi phí tương đối
Khi đó, lưu trữ flash đắt hơn đĩa cứng khoảng 20 lần, nhưng do nút thắt spindle nên xét theo tổng chi phí thì nhiều khi lại rẻ hơn
Tất cả những thứ này có thể quy đổi thành “mili-SWE”, tức 1/1000 công sức làm việc trong 1 năm của một SWE. Dự án có thể tiết kiệm phần cứng để tuyển thêm người, hoặc tuyển ít người hơn và nhận thêm phần cứng trong ngân sách hiện tại
Tôi không nhớ chính xác bao nhiêu lõi CPU tương đương 1 SWE, nhưng hình như là hàng nghìn lõi. Nếu dành 1 năm SWE để tối ưu toàn bộ dự án mà không tiết kiệm được 5000 lõi CPU thì đó là lỗ ròng
Các dự án rất lớn dùng nhiều hơn thế rất nhiều nên tối ưu hóa là hợp lý, nhưng trong nhiều trường hợp, đặc biệt nếu mã đã viết có khả năng sẽ bị thay thế vào một lúc nào đó, tối ưu hóa thường không đáng
Mặt khác, web có vấn đề chung về khả dụng. Web không nên dùng nhiều tài nguyên như hiện nay. Nếu bạn biết ai từng làm công việc nhập liệu, bạn sẽ biết chuột khá kém hiệu quả. Các terminal dạng văn bản 30–40 năm trước cung cấp giao diện rất hiệu quả trong khi dùng rất ít tài nguyên
Tôi từng nghĩ một ngày nào đó web sẽ được “giải quyết” theo kiểu có một stack công nghệ được kỳ vọng chung rồi mọi người chuyển sang vấn đề khác, nhưng chuyện đó đã không xảy ra. Vẫn còn “framework của tuần này”, và vẫn có chuyện ngớ ngẩn là tự triển khai lại thanh cuộn trong mã người dùng nhưng không khớp đúng với con lăn chuột. Tôi không biết có thể giải quyết vấn đề này bằng cách nào, hay ngay từ đầu nó có thể được “giải quyết” hay không
Google đã dồn nỗ lực khổng lồ vào hai khía cạnh hiệu năng khác là độ trễ và mức sử dụng tổng thể thiết bị. Cả hai đều là chỉ đạo từ trên xuống, hút rất nhiều thời gian và sự chú ý của hàng nghìn kỹ sư, và chi phí nhân sự cũng lớn
Nhưng nếu thiết bị là ràng buộc, dù từng lõi riêng lẻ rẻ, bạn vẫn không muốn để chúng nhàn rỗi vô cớ. Vì chi phí cơ hội của việc chờ xây trung tâm dữ liệu mới là rất lớn. Nếu mức sử dụng cực kỳ nhạy với độ trễ, việc cắt bớt mili-giây là hợp lý vì chỉ số kinh doanh, chứ không phải vì tiết kiệm chi phí phần cứng
Việc đánh giá phải được thực hiện ở chi phí biên. Ngay cả khi chỉ tiết kiệm được vài xu mỗi năm cho mỗi đô la, làm việc đó vẫn tốt hơn là để kỹ sư ngồi không
Vấn đề là hầu như không ai làm như vậy. Cách ra quyết định không liên quan đến tính toán kinh tế, và phần lớn chỉ bắt chước “thứ Google làm”. Điều đó giải thích được nhiều sự cố chức năng
Nhưng các doanh nghiệp thông thường, kể cả doanh nghiệp lớn, cũng không đến mức đó. Đây có vẻ là một ví dụ điển hình cho việc “Facebook/Google/Netflix và những công ty tương tự là một đẳng cấp riêng, và phần lớn thông lệ của họ không áp dụng được cho bạn”
Ta có thể tưởng tượng một vũ trụ song song nơi nhân lực được dồn vào tối ưu hóa, nhưng vũ trụ đó sẽ hoàn toàn khác hiện tại. Dùng thêm một kỹ sư cho tối ưu hóa nghĩa là bớt đi một kỹ sư phát triển tính năng. Để làm gì? Để tiết kiệm vài chu kỳ CPU? Nghe buồn cười
Chỉ nhìn tiêu đề thì tôi đã tưởng Carmack đang phê phán phần mềm không được tối ưu đúng mức và kêu gọi cải thiện hiệu năng trên phần cứng cũ
Tweet thực tế hoàn toàn không phải cả hai; nó bàn về một thí nghiệm tư duy trong đó tiến bộ phần cứng dừng lại, rồi kết luận rằng “nếu không có điện toán có thể mở rộng với chi phí cực thấp, các sản phẩm mới mang tính đột phá đương nhiên sẽ hiếm hơn rất nhiều”
https://news.ycombinator.com/item?id=43967208
https://threadreaderapp.com/thread/1922015999118680495.html
Ngược lại, tôi thấy trong 18 năm sau smartphone, chúng ta không chứng kiến nhiều đổi mới lớn, vì vốn đang dựa vào tiến bộ phần cứng để bán cho người tiêu dùng những sản phẩm về bản chất là giống những gì họ đã có
Tất nhiên sau tweet đầu tiên thì tôi không đọc được nữa
Sẽ có trì trệ, nhưng không phải trì trệ kéo dài
Nếu có thể tuyển người và giúp họ làm việc hiệu quả bằng các ngôn ngữ ít phức tạp hơn, thị trường lao động sẽ rộng ra và chi phí giảm xuống
Trong nguyên văn, về cơ bản Carmack đang lập luận rằng “lập trình viên giỏi và thông minh thì đắt, và vì còn những việc lớn hơn nên người ta không chi tiền để họ tối ưu mã và hệ thống đến cùng, khiến phần mềm chậm”
Vì vậy hàm ý là nếu lập trình viên giỏi đột nhiên trở nên rất rẻ, mọi người sẽ mua sức họ để tối ưu, và nhiều phần mềm có thể đột nhiên chạy nhanh hơn. Vậy tại sao lập trình viên giỏi lại có thể đột nhiên trở nên rẻ?
Sẽ thật tốt nếu có thể kéo dài tuổi thọ phần cứng thêm 5 năm, 10 năm sau giai đoạn “lỗi thời có chủ đích”
Khi đó có thể giảm rất nhiều rác thải điện tử, để đất hiếm còn nằm trong lòng đất, và cũng giảm đáng kể phát thải khí nhà kính
Nhưng các lực lượng thị trường của sản xuất phần mềm không trả chi phí cho những ngoại tác đó. Phát hành nhanh, kiểm thử và lặp lại rẻ hơn nhiều so với việc lập kế hoạch và thiết kế vì hiệu năng. Một số tổ chức trong ngành game đã tìm ra công thức để vừa có hiệu năng tốt vừa bán được nhiều, nhưng nó không lan tỏa đồng đều
Trong phần mềm doanh nghiệp và tiêu dùng, không có nhiều động lực để đưa tiêu chí hiệu năng vào yêu cầu. Người ta thiết kế theo mức người dùng còn chịu được, và vì phải liên tục tung ra thay đổi và tính năng, họ chừa dư địa càng nhiều càng tốt. Mọi thay đổi đều là một khoản nợ có thể ảnh hưởng đến hiệu năng và sự hài lòng của người dùng, nên họ đảm bảo có đủ ngân sách dự phòng để gánh tỷ lệ lỗi
Điều này rất khác với cách từng thiết kế và phát triển sau cánh cửa đóng kín “cho đến khi sẵn sàng”
Chúng ta nên có một nền kinh tế xoay quanh chăm sóc và bảo trì, và điều chỉnh các nỗ lực vĩ mô quanh lợi ích của toàn nhân loại thay vì của cải được cảm nhận của một số ít người
Nếu tập trung vào bảo trì xe cũ, tái sử dụng máy tính cũ, v.v., thì các bãi chôn lấp sẽ nhỏ hơn so với mức tăng trưởng
Tất nhiên cũng có thể có một mô hình lý thuyết trò chơi cho thấy chủ nghĩa bảo tồn là chiến lược khách quan kém hơn
Đã hơn 10 năm kể từ khi có thể chạy engine khớp lệnh của toàn bộ sàn giao dịch trên một luồng đơn
Tôi nghĩ một lớp năng lực tính toán cụ thể, tức xử lý giao dịch được tuần tự hóa nghiêm ngặt, đã không tăng nhanh như các chỉ số khác gợi ý. Thêm 31 lõi không làm engine khớp lệnh nhanh hơn, thậm chí có thể làm nó chậm đi
Nếu sản phẩm của bạn xử lý dưới vài triệu giao dịch mỗi giây mà vẫn đang tìm một cụm máy, bạn cần lùi lại khoảng 15 bước và bắt đầu lại từ đầu
Chỉ với thiết kế ban đầu thôi vẫn đã đáp ứng được 99% use case, và xét năng lực điện toán cục bộ ngày nay thì còn có thể chạy cả thị trường trên một máy duy nhất
Có phải là ngoài việc sắp xếp theo thời gian và giá thì không có đủ phép tính khác?
Nếu mỗi giao dịch đòi hỏi xử lý phức tạp hơn, hẳn đã không thể xử lý được nhiều giao dịch đến vậy. Tuy nhiên, nếu không phải người trong lĩnh vực đó thì khó tưởng tượng cần loại xử lý phức tạp hơn nào
Nói đúng. Đây là vấn đề kinh tế, tức là vấn đề phân bổ tài nguyên
Đó là lựa chọn giữa việc để ai đó dành thêm thời gian tối ưu hóa phần mềm, hay để họ tạo ra nhiều tính năng hơn. Nếu vế sau tạo ra nhiều tiền mặt hơn thì họ sẽ giao làm việc đó; nếu vế trước trở nên quan trọng với dòng tiền thì họ sẽ giao làm việc đó
Đây là một ví dụ rõ ràng về ngoại tác tiêu cực mà các công ty phần mềm áp đặt lên công chúng. Phần lớn các công ty phần mềm không phải trả chi phí thực của năng lượng, thời gian bị mất và rác thải điện tử phát sinh thêm, nên họ không bận tâm đến tối ưu hóa
Trong nhiều trường hợp tối ưu hóa triệt để cũng không có nhiều ý nghĩa, nhưng ý tưởng chỉ thêm server thay vì viết lại là một tình trạng đáng buồn
Phần lớn tính năng mới của macOS, Windows, Android tôi không dùng. Thứ tôi muốn là một môi trường hiệu quả để chạy ứng dụng và các cải thiện về bảo mật. Nhiều cải tiến như ứng dụng Settings của macOS cũng không làm tôi hài lòng lắm
Phần mềm thiết kế cũng tương tự. Tôi không dùng phần lớn tính năng mới mà Adobe đưa vào, và hoàn toàn có thể hài lòng với Illustrator hay Photoshop của 10 năm trước. Thứ tôi muốn là phần mềm bớt phình to
Với âm thanh và sản xuất nhạc, quy trình làm việc vẫn đang được cải thiện nên tôi muốn có tính năng mới, nhưng không phải bằng cách hy sinh hiệu năng
Với trình soạn thảo mã, các tính năng của VSCode là đủ. Tôi không cần thêm gì nữa; tôi muốn LSP tốt hơn, nhưng đó không phải phần lõi của trình soạn thảo. Tuy vậy tôi muốn VSCode nhanh hơn và ăn ít bộ nhớ hơn
Tối ưu hóa phần mềm cũng hấp dẫn theo cách tương tự. Nhưng nếu bài toán là “dành vài giờ thời gian kỹ sư đắt đỏ để tối ưu” so với “lắp thêm RAM rẻ tiền”, lựa chọn rẻ hơn sẽ thắng. Đôi khi vấn đề đủ lớn để đáng tối ưu
Thị trường sẽ quyết định lựa chọn nào đáng theo đuổi. Khi cách ném thêm phần cứng vào gặp quy luật lợi suất giảm dần, người ta sẽ tối ưu phần mềm. Định luật Moore đang chậm lại, nhưng có vẻ chúng ta vẫn chưa tới điểm đó
Nhưng thực tế gần như ngược lại. Nếu có mức giá rẻ hơn, họ còn có thể thích cả phiên bản hiệu năng thấp hơn
Không hẳn là phản bác Carmack, nhưng có một ví dụ cụ thể mà đôi khi tôi nghĩ tới
Ứng dụng Electron nằm đâu đó giữa thứ mà người tiêu dùng phải chịu đựng vì vấn đề hiệu năng và thứ bị họ ghét bỏ, nhưng có thể đó là đổi mới duy nhất giúp laptop Linux trở nên thực dụng ở nơi làm việc. Chẳng hạn, việc có thể tham gia cuộc họp MS Teams mà không cần cài đặt thật sự hữu ích
Vì vậy ai cũng than thở rằng ngày nay không còn gì được code chặt chẽ như Winamp, nhưng lại quên mất ba chữ cái đầu
Chúng có khả năng khá cao chạy được trên Linux, còn phần mềm Electron thì tệ trên mọi nền tảng
Năm 2010, tôi làm lao công và kiêm luôn việc phụ trách IT như một nghề tay trái
Khi đó tôi nói với công ty rằng laptop trong vòng 5 năm trước, đại khái là các máy từ sau Nehalem, đã đủ hiệu năng cho công việc bảng tính. Việc họ làm về cơ bản chỉ có vậy; 2 lõi, RAM 16GB và SSD SATA 500GB là đủ. Chỉ vài người bên marketing cần máy mạnh hơn một chút, nhưng khác biệt không lớn, và họ tiết kiệm được rất nhiều tiền nhờ không mua laptop cao cấp đời mới nhất
Giờ tôi không còn làm ở đó, nhưng tôi tin chắc rằng đến hôm nay những chiếc máy đó vẫn phải hoàn toàn đủ tốt cho bảng tính. Quy trình công việc không thay đổi nhiều; thứ thay đổi là phần mềm. Nếu cứ cập nhật liên tục thì tôi không biết giờ chúng có còn “chạy” nổi MS Windows 10 hay 11 không, nhưng khả năng cao năng suất đã giảm mạnh vì sự phình to, và đặc biệt là vì bảng tính chỉ dùng trực tuyến
Internet ở đó cũng tệ. Các lựa chọn là DSL bất đối xứng khoảng 16Mbit giá 300 đô la mỗi tháng vì bị gắn mác “doanh nghiệp”, hoặc cáp Comcast 120Mbit giá 500 đô la mỗi tháng. 120Mbit cũng chỉ vừa đủ chịu được cho bảng tính chỉ trực tuyến, còn 16Mbit thì chắc chắn thiếu. Tệ hơn nữa là nếu Internet đứt thì việc kinh doanh dừng lại
Đây chính là bản chất của sự trộm cắp mà bình luận khác nói tới, và tôi hoàn toàn đồng ý. Một chiếc laptop dùng để chỉnh sửa và cập nhật bảng tính trong văn phòng hoàn toàn không có lý do gì phải đòi Internet, hay tài nguyên tính toán/lưu trữ vô lý, hay băng thông lớn
Không có lời bào chữa nào cho hiệu năng khủng khiếp của máy tính ngày nay ngoài việc đẩy chi phí sang khách hàng, tức là cả cá nhân lẫn doanh nghiệp
https://news.ycombinator.com/item?id=43971960
Thế giới vận hành dựa trên chức năng, chứ không phải phần mềm thanh lịch, nhanh và không có lỗi
Với người dùng cuối, không có chức năng và có lỗi chẳng khác gì nhau. Việc hiệu năng kém khiến một tác vụ mất 5 phút để hoàn thành, và việc không có chức năng khiến người dùng phải tự làm thủ công việc tương tự trong 5 phút, cũng không có khác biệt đáng kể. Cả hai đều là “chậm”
Nếu cứ tiếp tục tối đa hóa giá trị cho người dùng cuối, tất yếu sẽ tạo ra phần mềm chậm và nhiều lỗi. Hơn nữa, nếu hỏi người dùng rằng họ có muốn ít chức năng hơn để đổi lấy việc nhanh hơn và ít lỗi hơn không, thì đáng ngạc nhiên là họ nói không. Quan trọng hơn, trong thế giới doanh nghiệp, người mua phần mềm thường không phải là người dùng cuối, và họ muốn nhiều chức năng hơn, còn hiệu năng và sự thanh lịch thì ít quan tâm hơn
Nếu tập tính năng như nhau, người dùng và người mua sẽ chọn phần mềm nhanh nhất, ít lỗi nhất và thanh lịch nhất. Nhưng chỉ cần thiếu một chức năng là thua. Lý do phải giữ cho phần mềm nhanh và thanh lịch là vì làm vậy sẽ có khả năng cao nhất để tiếp tục thêm chức năng mà không trở thành sản phẩm ít chức năng hơn
Một giải pháp nhanh và thanh lịch có thể nhận được đánh giá tốt và được khen là dùng thích. Vì vậy điều đó có thể trông như một yếu tố quan trọng. Nhưng rốt cuộc, nếu không làm được việc họ muốn thì họ sẽ không mua. Nếu có chức năng cốt lõi họ cần, họ sẽ chọn một mớ hỗn độn chậm chạp, khó chịu và đầy lỗi
Cũng cần nhớ rằng Microsoft giờ phải vừa đá vừa kéo người dùng đang la hét sang phiên bản Windows tiếp theo. Nếu để người dùng tự quyết, nhiều người có lẽ đã không nâng cấp kể từ Windows XP. Dù các phiên bản sau có nhiều tính năng mới đẹp đẽ
Tôi đồng ý rằng doanh nghiệp và nhà đầu tư muốn bản thân các chức năng, nhưng người dùng thì chắc chắn không
Nếu có thể, chẳng ai còn nâng cấp bất cứ thứ gì nữa. Cứ nhìn Microsoft vất vả thế nào để khiến mọi người nâng cấp là thấy. Tôi chưa từng nghe ai nói họ muốn phiên bản mới của Windows, Office, Slack, Zoom, v.v.
Đây cũng là lý do mọi thứ như Photoshop bị ép lên cloud. Đại đa số mọi người không muốn các chức năng mới được cung cấp, kể cả người mua doanh nghiệp. Câu trả lời để duy trì doanh thu là khiến mọi người phải mua, bất kể có cung cấp chức năng hay không
Tuy nhiên, người dùng hiện tại đã làm được việc họ cần bằng phần mềm rồi, nên chức năng mới có thể giúp họ bỏ đi một phần mềm khác hoặc làm được việc mới. Nhưng nếu đó thật sự là một việc mới cực kỳ quan trọng, có lẽ họ đã tìm phần mềm khác để dùng rồi, nghĩa là đến giờ họ vẫn sống ổn khi không có nó. Vì vậy nếu người dùng hiện tại thật sự suy xét kỹ, tôi nghĩ trước tiên họ sẽ yêu cầu cải thiện hiệu năng, rồi muốn thêm vài cải tiến nhỏ
Ngược lại, người dùng tiềm năng hoặc chưa biết phần mềm, hoặc cần một chức năng nào đó khác trước khi thấy nó hữu ích. Họ mới là nhóm có lý do hợp lý để tìm chức năng mới
Vì vậy quyết định “chức năng vs hiệu năng” cũng là tín hiệu cho thấy ưu tiên của nhà phát triển là thêm người dùng mới hay làm hài lòng người dùng hiện tại. Việc dân kỹ thuật thiên về vế sau là điều tự nhiên. Họ đã chơi trò này rồi, và biết rằng họ muốn được ưu tiên trong quãng thời gian thực sự dùng lâu dài, chứ không phải trong lúc bị thu hút về
Phần mềm nhiều lỗi, chậm nhưng giàu chức năng thống trị thị trường cũng là vì các công ty ưu tiên tăng trưởng trước. Lịch sử đầy những phần mềm đẹp đẽ, thanh lịch mà người dùng nhớ tiếc, nhưng chúng không lan rộng đủ để công ty tồn tại
Sự đánh đổi là có thật theo cả hai chiều. Phần lớn mọi người dành nhiều thời gian làm người dùng hơn là người dùng tiềm năng. Đây rất có thể là một nguyên nhân lớn của nhận thức phổ biến rằng phần mềm và máy tính ngày nay tệ đến khó tin
Số tiền chi cho RAM và CPU tốt hơn trên máy tính gia đình và văn phòng giúp mọi phần mềm chạy trên đó có thể được phát hành với chi phí thấp hơn và nhiều chức năng hơn