Lập trình tách biệt
Người ta đã xây dựng NS theo tư tưởng tạo cho nó khả năng mở rộng được dễ
dàng khi người nghiên cứu muốn bổ sung các chức năng mới, thử nghiệm các kịch bản khác nhau và nghiên cứu các giao thức mới. Để đạt được mục tiêu trên, NS sử
dụng một mô hình lập trình phân tách làm hai phần; ngôn ngữ C++ được sử dụng để
triển khai thực hiện hạt nhân của bộ mô phỏng, gồm các chức năng căn bản nhất của mô phỏng cần chạy ở tốc độ cao. Phần thứ hai của NS sử dụng ngôn ngữ Tcl, thực hiện các nhiệm vụđịnh nghĩa, định cấu hình và điều khiển mô phỏng. Cách tiếp cận lập trình tách biệt này đem lại lợi ích to lớn và lâu dài, nó tách gánh nặng của việc thiết kế, bảo trì, mở rộng và gỡ rối bộ mô phỏng khỏi mục đích của mô phỏng – đó
là để làm các thí nghiệm nghiên cứu, đem đến cho người nghiên cứu bằng mô phỏng một môi trường dễ sử dụng, dễđặt lại cấu hình và lập trình được.
Lập trình hướng đối tượng
Việc phân chia NS làm hai phần được lập trình bằng các ngôn ngữ khác nhau cũng thường thay đổi trong quá trình nghiên cứu các giao thức. Vì vậy, việc tái sử
dụng các mô-đun chương trình có ý nghĩa hết sức quan trọng, điều này dẫn đến sự
lựa chọn lập trình hướng đối tượng. Tuy nhiên, ban đầu khi người ta thiết kế NS, ngôn ngữ Tcl không hỗ trợ việc lập trình hướng đối tượng, vì thế dự án VINT đã chấp nhận sử dụng các mở rộng hướng đối tượng của ngôn ngữ Tcl, được phát triển tại Viện Công nghệ Massachuset (MIT), ngôn ngữ này được gọi là OTcl. Ngoài ra, VINT cũng chấp nhận một sự mở rộng đơn giản của Tcl, đó là các lớp (TclCL). Nhờ đó có thể dễ dàng tạo ra một đối tượng được xây dựng bằng cả hai ngôn ngữ
C++ và OTcl.