10 Ngôn Ngữ lập trình "Khó ở" nhất
top10
1
White

Quốc Hùng viết ngày 26/04/2016

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)\n";
print "B: $heather{'This'} $heather{'actually'}\n";

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

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

# 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'}]\n";

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.

$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>\n\n";
@mysql_select_db( $db )
  or die ( "Couldn't open $db: ".mysql_error() );
print "Successfully selected database \"$db\"<br />\n";
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.

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 :joy: .

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
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Quốc Hùng

1 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
1 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!