30/09/2018, 19:32

10 Ngôn ngữ lập trình thuộc dạng... "khó ở" nhất

Hệ thống xếp hạng này là do quan điểm cá nhân và thu thập ý kiến.

10.Perl

Perl là một ngôn ngữ lập trình do Larry Wall thiết kế để xử lý các danh sách và báo cáo, được sử dụng để xử lý chuỗi kí tự và quản lý dữ liệu nhưng dần, Perl còn được dùng làm vũ khí cho các tay an ninh mạng nhưng việc sử dụng nhiều các kí hiệu, kiểu vô hướng và biểu thức chính quy kiến cho việc Debug và xem lại code cũng gây không ít khó khăn.

@alex = ( fred => 44, 'joe' => 2983, mike => -94 );
%heather = ('This', 'will', 'actually', 'work');
print "A: @alex = (@alex)
";
print "B: $heather{'This'} $heather{'actually'}
";

%heather = @alex;
print "C: [$heather{'fred'}] [$heather{'joe'}] [$heather{'mike'}] ",
    "[$heather{'This'}]
";
$heather{'dingbat'} = 8822;
$heather{'giggles'} = 33;
@alex = %heather;
print "D: @alex
";

# Extras are empty string.
%heather = ('a', 'b', 'c');
print "E: [$heather{'a'}] [$heather{'c'}]
";

# Duplicate keys get the last value.
%heather = ( 'brillig' => 74, 'snark' => 34, 
             'slithy' => 18, 'snark' => 99,
             'beamish' => 48, 'brillig' => 1 );
print "E: [$heather{'brillig'}] [$heather{'snark'}] ",
    "[$heather{'slithy'}] [$heather{'beamish'}]
";

9.Objective-C

Là ngôn ngữ “truyền thống” của Apple để lập trình hệ điều hành Mac OS, iOS và các ứng dụng chạy “Nền táo” (Apple’s Platform). Ngôn ngữ này vay mượn phần lớn cú pháp của C khiến cho việc học nó trở nên dễ dàng trừ một điểm là hệ thống cú pháp “thô” và khiến lập trình viên dùng nhiều dòng code hơn. Nó lại là một ngôn ngữ lập trình hướng đối tượng nền C khiến cho lập trình viên không thể sử dụng hay khai thác tối đa sức mạnh của Lập trình hướng đối tượng. (Mình chẳng biết tại sao Steve Job ưa hoàn hảo mà lại chọn ngôn ngữ này?)

#import "Photo.h"
@implementation Photo
- (NSString*) caption {
 return caption; 
}
- (NSString*) photographer {
 return photographer; 
}
- (void) setCaption: (NSString*)input {
 [caption autorelease]; 
 [input retain]; 
 caption = input;
}
- (void) setPhotographer: (NSString*)input {
 [photographer autorelease]; 
 [input retain]; 
 photographer = input;
}
@end

8.JavaScript

Đây là một ngôn ngữ “không giống họ cũng giống tên” với Java được sử dụng để tạo nội dung hành vi (Behavior) cho trang web. Cú pháp vay mượn khá nhiều Java nên khá dễ học nhưng nó lại khá kì dị vì nó sử dụng OOP-Prototype, sử dụng các hàm thay thế các lớp, sử dụng biểu thức chính quy và cả… Kiểu vô hướng, (mình thấy nó giống Perl đội lốt Java sống ở Web). Khiến cho việc viết code gặp khá nhiều lỗi nhưng… lại khó phát hiện. Vì đây là ngôn ngữ thông dịch nền web.

7,5.PHP

Điệp khúc này chắc hẳn các bạn đã nghe nhiều lần rồi nhưng nếu không đưa nó vào list thì chắc chắn là sự thiếu sót. PHP là cái ngôn ngữ “Justin”, một cái búa với hai mấu nhổ đinh. Vô cùng xấu xí với kiểu vô hướng và hình như đó là đứa con lai của Perl và Basic - một tổ hợp với vô vàn từ khóa. và lại là sản phẩm của một kẻ… vừa bỏ bú ngôn ngữ Basic. Nhưng rồi thì sao? Nó như một loại nước sốt rẻ tiền mà ai cũng dùng. Thậm chí các tên miền có hỗ trợ PHP lại có giá cao hơn khoảng gấp rưỡi so với tên miền không dùng. Không biết là daynhauhoc có dùng PHP không nhỉ? anh @ltd

$user = "root";
$pass = "";
$db = "mydatabase";
$link = @mysql_connect( "localhost", $user, $pass );
if ( ! $link ) {
  die( "Couldn't connect to MySQL: ".mysql_error() );
}
print "<h2>Successfully connected to server</h2>

";
@mysql_select_db( $db )
  or die ( "Couldn't open $db: ".mysql_error() );
print "Successfully selected database "$db"<br />
";
mysql_close( $link );

7.C++

Là ngôn ngữ sử dụng nhiều nhất nhì thế giới và vai “Ông bà” của các ngôn ngữ lập trình của sau này (trong đó có Java), và sở hữu cái sức mạnh mà-ai-cũng biết. Được dùng chủ yếu để viết các chương trình đồ họa, mạnh mẽ và nhanh nhẹn, lập trình nhúng, game… nhưng đây là một cơn ác mộng của những người “chân ướt chân ráo” trong giới lập trình vì nó chính xác là một… Món Xà Bần. Nó là tổ hợp của Lập Trình OOP, Lập Trình Tuyến Tính (thừa kế C), và “…”. Hệ thống lập trình OOP không trong sáng và không thừa kế được hết các đặc tính của OOP khiến cho việc học nó như một PL (Programming Language) Tuyến Tính đã khó, như một OOP còn khó hơn.

#include <iostream>
using namespace std;
int main(){
   cout << "Hi Daynhauhoc" << endl;
}

6.Scala

Scala là ngôn ngữ lập trình do Martin Odersky thiết kế. Nó là tổng của Lập Trình hướng đối tượng và Lập Trình hướng hàm. Và nó đúng là một kẻ “dựa hơi Java” từ cú pháp và chạy cả trên nền Java (đùa à?!). Mặc dù dựa hơi Java nhưng nó vẫn khá xấu xí trong cú pháp riêng. (lại còn dùng lazy, làm ơn đi!)

5.Prolog

Prolog đã quá nổi tiếng về sự linh hoạt trong việc hỗ trợ lập trình hướng Logic và được dùng khá rộng rãi để lập trình “artificial intelligence” (trí khôn nhân tạo -hay còn gọi là AI). nhưng hệ thống mã nguồn thì khó hiểu và không quen thuộc với hầu hết các lập trình viên

intersect([],X,[]):- !.
intersect([X|R],Y,[X|T]):- member(X,Y),intersect(R,Y,T),!.
intersect([X|R],Y,L):- intersect(R,Y,L).

4.Lisp

Đây là ngôn ngữ lập trình thuần hướng hàm. Nhưng nó quá xấu xí và lại mang phong cách lập trình hàm - thứ hack não còn hơn cả Con trỏ.

3.Haskell

giống như Matlab, đây là “thứ” (mình cũng chưa biết nên gọi nó bằng gì) chủ yếu chỉ dùng để tính toán phức tạp. Nhưng lại khoác áo Lập Trình Hàm và có các hàm “rất” trừu tượng số hóa như Monad, Forall,… khá khó hiểu nhưng được cái là khá mạnh. Và được nhiều người gọi là “Công nghệ của Người Ngoài Hành Tinh”

2.Assembly Language

Đây là thứ “khiến tôi mất ngủ” khi gặp nó. Nó là một ngôn ngữ anh em “cùng mẹ khác anh rể” với Hexa và Ngôn ngữ máy. Nó ám ảnh mình hơn cả C++. Đây là một ngôn ngữ vô cùng chua chát đối với các sinh viên thuộc ngành Khoa Học Máy Tính và những người newbie vì hệ thống rất phức tạp về câu lệnh và nếu code không khéo thì máy tính của bạn sẽ “vào Nghĩa Trang”. nhưng đây là “God’s PL”, nó có thể làm được mọi thứ, rất nhanh và nguy hiểm và nó sẽ dạy cho bạn biết “từ góc đến ngọn” của cấu trúc máy tính và ngôn ngữ lập trình, các cách thức hoạt động,… nó được dùng chủ yếu trong thiết kế vi mạch, ngôn ngữ lập trình và giúp bạn học các ngôn ngữ lập trình khác dễ như ăn kẹo. Nhưng trước hết, bạn cần mua máy tính mới .

section	.text
    global _start   ;must be declared for linker (ld)
_start:	            ;tells linker entry point
    mov	edx,len     ;message length
    mov	ecx,msg     ;message to write
    mov	ebx,1       ;file descriptor (stdout)
    mov	eax,4       ;system call number (sys_write)
    int	0x80        ;call kernel
	
    mov	eax,1       ;system call number (sys_exit)
    int	0x80        ;call kernel

section	.data
msg db 'Hello, world!', 0xa  ;our dear string
len equ $ - msg     ;length of our dear string

1.APL

Đây là ngôn ngữ lập trình của một “ông”, và “ông” ấy rất rảnh. Nó được xếp vào hàng “ngôn ngữ kì dị” (ông bạn của nó là BrainFuck,…). Với hệ thống cú pháp phần lớn là kí hiệu phức tạp (chả hiểu ông ta nghĩ cái **o gì nữa.). Và vì sự phức tạp của nó, giờ nó đã nằm trong viện bảo tảng và yên nghĩ cùng với người cha của nó - Kenneth E. Iverson.

  L←(Lι':')↓L←,L       ⍝ drop To:
    L←LJUST VTOM',',L    ⍝ mat with one entry per row
 [8]    S←¯1++/∧L≠'('       ⍝ length of address
 [9]    X←0⌈⌈/S
 [10]   L←S⌽(−(⍴L)+0,X)↑L    ⍝ align the (names)
 [11]   A←((1↑⍴L),X)↑L       ⍝ address
 [12]   N←0 1↓DLTB(0,X)↓L    ⍝ names)
 [13]   N←,'⍺',N
 [14]   N[(N='_')/ι⍴N]←' '   ⍝ change _ to blank
 [15]   N←0 ¯1↓RJUST VTOM N  ⍝ names
 [16]   S←+/∧' '≠⌽N         ⍝ length of last word in name
*grab popcorn* viết 21:37 ngày 30/09/2018

Cá nhân thì thấy nên để Lisp thành hạng 2 thay vì Assembly
Syntax của Lisp mình có xem qua và thấy… kinh khủng :))

Bùi Ngọc Minh viết 21:48 ngày 30/09/2018

Cảm thấy sợ hãi khi nhìn thấy APL
Tôi đang đọc cái quái gì vậy haha

Jobs Apple Steve viết 21:34 ngày 30/09/2018

moi nguoi taon bao javascrip de ma ban

Quốc Hùng viết 21:32 ngày 30/09/2018

nhưng việc sử dụng var -> kiểu vô hướng, biểu thức chính quy, prototype,… của JavaScript khiến nó khá khó để code đấy bạn.

Minh Nguyễn Laho viết 21:42 ngày 30/09/2018

nhưng JavaScript quan trọng đối với lập trình web, mình thấy bạn nói khó thế này thì thấy lo quá đấy :(((((.

Trương Phước Hiệu viết 21:35 ngày 30/09/2018

Nhìn cái Apl đúng ko biết cha đẻ nó nghỉ cái đ gì nhỉ

Trần Minh Quân viết 21:39 ngày 30/09/2018

daynhauhoc dùng ngôn ngữ Ruby
Link tham khảo

VinaCode – 27 Feb 15

Tại sao tôi lại sử dụng ngôn ngữ Ruby để xây dựng Discourse?

Bài viết được dịch từ blog Coding Horror Tính đến nay tôi đã là một nhà phát triển phần mềm trên nền tảng Microsoft trong nhiều thập kỷ. Tôi đã tận hưởng rất nhiều hương vị của Microsoft Basic, và …


VinaCode – 22 Apr 15

9 Lý do tại sao bạn nên tham gia diễn đàn Dạy Nhau Học

Như chúng ta đều đã biết việc trao đổi và thảo luận trong học tập là vô cùng quan trọng, bởi thông qua thảo luận thì sẽ giúp những người tham gia có thể hiểu rõ được về vấn đề mà nhóm đang tìm hiểu…

Mai Thế Nguyễn viết 21:41 ngày 30/09/2018

Chắc tại học Pascal đầu tiên hay sao mà em thấy Pascal là dễ nhất đấy ạ.

Võ Hoài Nam viết 21:35 ngày 30/09/2018

Phần 8, nói về JavaScript ở đâu chọt thằng PHP vô, làm mình tưởng số 7 là PHP. Nhưng kéo xuống thì xuất hiện số 7 nói về một ngôn ngữ khác. Phần 4, 3, 2 thì bác tách dòng để tiện coi.

Quốc Hùng viết 21:39 ngày 30/09/2018

Dạ anh, nhưng em chỉnh nhiều lần rồi nhưng vẫn bị. Mong anh thông cảm. Còn PHP, nó ngôn ngữ bị “thù” nhất, nếu không có nó thì lại thiếu anh ạ. ^^

IDL viết 21:48 ngày 30/09/2018

mình yêu PHP lắm chứ, có thù nó đâu ta @…@

Quốc Hùng viết 21:45 ngày 30/09/2018

Đa số thù nó là do thiết kế xấu thôi bạn

techmaster.vn

Tại sao các lập trình viên yêu và ghét PHP

PHP, ngôn ngữ kịch bản phía máy chủ đáng kính, rất nổi tiếng trong việc phát triển Web. Phát hành lần đầu tiên vào năm 1995 bởi tác giả Rasmus Lerdorf, nó đã được thúc đẩy bởi các dịch vụ của WordPress và Facebook. Theo W3Techs, PHP được sử dụng...

Vu Duy viết 21:48 ngày 30/09/2018

Mình thì không đồng ý cho Scala vào list này. Những gì @conan4582 nói về Scala đều là thế mạnh của nó cả. Nhất là lập trình hàm, patten matching, làm cho code ngắn đi rất nhiều.
Trở ngại duy nhất khi học về Scala đó là tư tưởng của lập trình hàm

Võ Hoài Nam viết 21:45 ngày 30/09/2018

PHP thì thù nó ở chỗ OOP của nó không rõ ràng gì cả

Quốc Hùng viết 21:43 ngày 30/09/2018

C++ and VB too

Võ Hoài Nam viết 21:37 ngày 30/09/2018

Ý là C++, VB ko có OOP rõ ràng?

IDL viết 21:43 ngày 30/09/2018

nó có interface, abstract, trait. static thì ::, object thì ->. tớ thấy nó cũng khá ok rồi chứ bộ

Võ Hoài Nam viết 21:41 ngày 30/09/2018

Mình thấy nó cũng ra dc OOP, nhưng mà không thích syntax của nó cho lắm.

Phạm Hòa Vịnh viết 21:44 ngày 30/09/2018

Cái APL đọc k hiểu gì cả

Quốc Hùng viết 21:47 ngày 30/09/2018

Lập trình hướng hàm - thứ hack não còn hơn cả Con trỏ ^^

Bài liên quan
0