C++ vs Swift: What are the differences?
What is C++? Has imperative, object-oriented and generic programming features, while also providing the facilities for low level memory manipulation. C++ compiles directly to a machine's native code, allowing it to be one of the fastest languages in the world, if optimized.
What is Swift? An innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.
C++ and Swift can be categorized as "Languages" tools.
"Performance", "Control over memory allocation" and "Cross-platform" are the key factors why developers consider C++; whereas "Ios", "Elegant" and "Not Objective-C" are the primary reasons why Swift is favored.
Swift is an open source tool with 48.4K GitHub stars and 7.76K GitHub forks. Here's a link to Swift's open source repository on GitHub.
According to the StackShare community, Swift has a broader approval, being mentioned in 993 company stacks & 541 developers stacks; compared to C++, which is listed in 199 company stacks and 371 developer stacks.
I am currently learning Back-End design, and I am confused with the term Back-End API. My question is do I need to have a webserver? That is the Browser send a http request to the Webserver, based on the URL, the Webserver will execute the WEB API and route the request to it and send back the response received from the WEB API to the browser. If so, what are the differences from the WebServer to execute a CGI in the traditional architecture?
If this is not the case, is the WEB API a standalone server/application that can process the HTTP request and send back the response to the browser? Thank you very much for clarifying...
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%