Need advice about which tool to choose?Ask the StackShare community!
Python has become the most popular language for machine learning right now since almost all machine learning tools provide service for this language, and it is really to use since it has many build-in objects like Hashtable. In C, you need to implement everything by yourself.
C++ is one of the most popular programming languages in graphics. It has many fancy libraries like eigen to help us process matrix. I have many previous projects about graphics based on C++ and this time, we also need to deal with graphics since we need to analyze movements of the human body. C++ has much more advantages than Java. C++ uses only compiler, whereas Java uses compiler and interpreter in both. C++ supports both operator overloading and method overloading whereas Java only supports method overloading. C++ supports manual object management with the help of new and delete keywords whereas Java has built-in automatic garbage collection.
I was considering focusing on learning RoR and looking for a work that uses those techs.
After some investigation, I decided to stay with C# .NET:
It is more requested on job positions (7 to 1 in my personal searches average).
It's been around for longer.
it has better documentation and community.
One of Ruby advantages (its amazing community gems, that allows to quickly build parts of your systems by merely putting together third party components) gets quite complicated to use and maintain in huge applications, where building and reusing your own components may become a better approach.
Rail's front end support is starting to waver.
C# .NET code is far easier to understand, debug and maintain. Although certainly not easier to learn from scratch.
Though Rails has an excellent programming speed, C# tends to get the upper hand in long term projects.
I would avise to stick to rails when building small projects, and switching to C# for more long term ones.
Opinions are welcome!
In 2015 as Xelex Digital was paving a new technology path, moving from ASP.NET web services and web applications, we knew that we wanted to move to a more modular decoupled base of applications centered around REST APIs.
To that end we spent several months studying API design patterns and decided to use our own adaptation of CRUD, specifically a SCRUD pattern that elevates query params to a more central role via the Search action.
Once we nailed down the API design pattern it was time to decide what language(s) our new APIs would be built upon. Our team has always been driven by the right tool for the job rather than what we know best. That said, in balancing practicality we chose to focus on 3 options that our team had deep experience with and knew the pros and cons of.
For us it came down to C#, JavaScript, and Ruby. At the time we owned our infrastructure, racks in cages, that were all loaded with Windows. We were also at a point that we were using that infrastructure to it's fullest and could not afford additional servers running Linux. That's a long way of saying we decided against Ruby as it doesn't play nice on Windows.
That left us with two options. We went a very unconventional route for deciding between the two. We built MVP APIs on both. The interfaces were identical and interchangeable. What we found was easily quantifiable differences.
We were able to iterate on our Node based APIs much more rapidly than we were our C# APIs. For us this was owed to the community coupled with the extremely dynamic nature of JS. There were tradeoffs we considered, latency was (acceptably) higher on requests to our Node APIs. No strong types to protect us from ourselves, but we've rarely found that to be an issue.
As such we decided to commit resources to our Node APIs and push it out as the core brain of our new system. We haven't looked back since. It has consistently met our needs, scaling with us, getting better with time as continually pour into and expand our capabilities.
Pros of C#
- Cool syntax320
- Great lambda support269
- Great generics support244
- Language integrated query (linq)188
- Extension methods162
- Properties with get/set methods77
- Automatic garbage collection76
- Backed by microsoft70
- Automatic memory management58
- Amaizing Crossplatform Support54
- High performance29
- Beautiful28
- LINQ25
- Great ecosystem of community packages with Nuget22
- Vibrant developer community19
- Dead-simple asynchronous programming with async/await13
- Great readability12
- Strongly typed by default, dynamic typing when needed9
- Productive8
- Easy separation of config/application code7
- Visual Studio - Great IDE7
- Object oriented programming paradigm6
- Open source6
- Operator overloading5
- Events management using delegates5
- OOPS simplified with great syntax5
- Conditional compilation4
- Comprehensive platform libraries3
- Good language to teach OO concepts3
- Great community3
- Organized and clean3
- High-performance3
- Coherent language backed by an extensive CLR3
- Cool3
- Concise syntax, productivity designed2
- Unity2
- Top level code2
- Linq expressions2
- Lovely1
- Interfaces1
- Interfaces0
Pros of C++
- Performance171
- Control over memory allocation91
- Cross-platform87
- Fast82
- Object oriented73
- Industry standard53
- Smart pointers41
- Templates32
- Gui toolkits16
- Raii15
- Generic programming12
- Flexibility11
- Control10
- Metaprogramming8
- Hardcore7
- Full-fledged containers/collections API5
- Simple5
- Performant multi-paradigm language4
- Many large libraries3
- Large number of Libraries3
- Way too complicated2
- Plenty of useful features1
- Https://www.info999.gq/2020/09/friend-function-in-c.htm1
Pros of Swift
- Ios248
- Elegant175
- Not Objective-C123
- Backed by apple105
- Type inference89
- Generics58
- Playgrounds51
- Semicolon free47
- OSX37
- Tuples offer compound variables34
- Clean Syntax21
- Easy to learn21
- Open Source20
- Functional19
- Beautiful Code17
- Linux10
- Dynamic10
- Promotes safe, readable code9
- Protocol-oriented programming8
- Explicit optionals7
- No S-l-o-w JVM7
- Storyboard designer5
- Super addicting language, great people, open, elegant4
- Type safety4
- Optionals4
- Best UI concept4
- Feels like a better C++3
- Swift is faster than Objective-C3
- Faster and looks better3
- Easy to Maintain2
- Strong Type safety2
- Fail-safe2
- Its fun and damn fast2
- Highly Readable codes2
- Native2
- Protocol extensions2
- Powerful2
- Much more fun2
- Its friendly2
- Easy to learn and work2
- Protocol as type1
- Protocol oriented programming1
- Great for Multi-Threaded Programming1
- Objec1
- Type Safe1
- All Cons C# and Java Swift Already has1
- Free from Memory Leak1
- Swift is easier to understand for non-iOS developers.1
- Actually don't have to own a mac1
- Can interface with C easily1
- Esay1
- Numbers with underbar1
- MacOS1
- Optional chain1
Sign up to add or upvote prosMake informed product decisions
Cons of C#
- Poor x-platform GUI support11
- Closed source6
- Requires DllImportAttribute for getting stuff from unma6
- Fast and secure5
Cons of C++
- Slow compilation7
- Unsafe7
- Over-complicated6
- Fragile ABI6
- No standard/mainstream dependency management5
- Templates mess with compilation units4
- Too low level for most tasks3
- Compile time features are a mess1
- Template metaprogramming is insane1
- Segfaults1
- Unreal engine1
Cons of Swift
- Must own a mac2
- Memory leaks are not uncommon2
- Its classes compile to roughly 300 lines of assembly1
- Complicated process for exporting modules1
- Very irritatingly picky about things that’s1
- Is a lot more effort than lua to make simple functions1
- Overly complex options makes it easy to create bad code0