Need advice about which tool to choose?Ask the StackShare community!
C vs Stan: What are the differences?
Developers describe C as "One of the most widely used programming languages of all time". . On the other hand, Stan is detailed as "A Probabilistic Programming Language". A state-of-the-art platform for statistical modeling and high-performance statistical computation. Used for statistical modeling, data analysis, and prediction in the social, biological, and physical sciences, engineering, and business.
C and Stan are primarily classified as "Languages" and "Machine Learning" tools respectively.
Stan is an open source tool with 1.61K GitHub stars and 279 GitHub forks. Here's a link to Stan's open source repository on GitHub.
As a personal research project I wanted to add post-quantum crypto KEM (key encapsulation) algorithms and new symmetric crypto session algorithms to openssh. I found the openssh code and its channel/context management extremely complex.
Concurrently, I was learning Go. It occurred to me that Go's excellent standard library, including crypto libraries, plus its much safer memory model and string/buffer handling would be better suited to a secure remote shell solution. So I started from scratch, writing a clean-room Go-based solution, without regard for ssh compatibility. Interactive and token-based login, secure copy and tunnels.
Of course, it needs a proper security audit for side channel attacks, protocol vulnerabilities and so on -- but I was impressed by how much simpler a client-server application with crypto and complex terminal handling was in Go.
$ sloc openssh-portable
Languages Files Code Comment Blank Total CodeLns
Total 502 112982 14327 15705 143014 100.0%
C 389 105938 13349 14416 133703 93.5%
Shell 92 6118 937 1129 8184 5.7%
Make 16 468 37 131 636 0.4%
AWK 1 363 0 7 370 0.3%
C++ 3 79 4 18 101 0.1%
Conf 1 16 0 4 20 0.0%
$ sloc xs
Languages Files Code Comment Blank Total CodeLns
Total 34 3658 1231 655 5544 100.0%
Go 19 3230 1199 507 4936 89.0%
Markdown 2 181 0 76 257 4.6%
Make 7 148 4 50 202 3.6%
YAML 1 39 0 5 44 0.8%
Text 1 30 0 7 37 0.7%
Modula 1 16 0 2 18 0.3%
Shell 3 14 28 8 50 0.9%
Pros of C lang
- Performance69
- Low-level49
- Portability36
- Hardware level29
- Embedded apps19
- Pure13
- Performance of assembler9
- Ubiquity8
- Great for embedded6
- Old4
- Compiles quickly4
- No garbage collection to slow it down3
- OpenMP2
- Gnu/linux interoperable2
Pros of Stan
Sign up to add or upvote prosMake informed product decisions
Cons of C lang
- Low-level5
- No built in support for parallelism (e.g. map-reduce)3
- Lack of type safety3
- No built in support for concurrency3



















