Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

C++
C++

4.9K
3.6K
+ 1
660
F#
F#

233
257
+ 1
260
Swift
Swift

7.1K
5K
+ 1
1.1K
- No public GitHub repository available -

What is C++?

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 F#?

F# is a mature, open source, cross-platform, functional-first programming language. It empowers users and organizations to tackle complex computing problems with simple, maintainable and robust code.

What is Swift?

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.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose C++?
Why do developers choose F#?
Why do developers choose Swift?

Sign up to add, upvote and see more prosMake informed product decisions

    Be the first to leave a con

    Sign up to add, upvote and see more consMake informed product decisions

    What companies use C++?
    What companies use F#?
    What companies use Swift?

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with C++?
    What tools integrate with F#?
    What tools integrate with Swift?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to C++, F#, and Swift?
    C
    Python
    Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
    C#
    C# (pronounced "See Sharp") is a simple, modern, object-oriented, and type-safe programming language. C# has its roots in the C family of languages and will be immediately familiar to C, C++, Java, and JavaScript programmers.
    JavaScript
    JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
    PHP
    Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
    See all alternatives
    Decisions about C++, F#, and Swift
    StackShare Editors
    StackShare Editors
    Rails
    Rails
    Node.js
    Node.js
    Python
    Python
    React
    React
    Java
    Java
    Ruby
    Ruby
    Go
    Go
    Swift
    Swift
    Objective-C
    Objective-C
    jQuery
    jQuery

    By mid-2015, around the time of the Series E, the Digital department at WeWork had grown to more than 40 people to support the company’s growing product needs.

    By then, they’d migrated the main website off of WordPress to Ruby on Rails, and a combination React, Angular, and jQuery, though there were efforts to move entirely to React for the front-end.

    The backend was structured around a microservices architecture built partially in Node.js, along with a combination of Ruby, Python, Bash, and Go. Swift/Objective-C and Java powered the mobile apps.

    These technologies power the listings on the website, as well as various internal tools, like community manager dashboards as well as RFID hardware for access management.

    See more
    StackShare Editors
    StackShare Editors
    | 2 upvotes · 29.7K views
    atUber TechnologiesUber Technologies
    Java
    Java
    Swift
    Swift
    Gradle
    Gradle
    Objective-C
    Objective-C

    At the heart of Uber’s mobile app development are four primary apps: Android rider, Android driver, iOS rider, and iOS driver. Android developers build in Java, iOS in Objective C and Swift. Engineers across both platforms land code into a monolithic code base that ships each week.

    They use some third-party libraries, but often build their own, since “Many open source libraries available are general-purpose, which can create binary bloat. For mobile engineering, every kilobyte matters.”

    On Android, the build system is Gradle. For the UI, Butter Knife binds views and callbacks to fields and methods via annotation processing, and Picasso provides image loading.

    As for iOS, all of the code lives in a monorepo built with Buck. For crash detection, KSCrash reports crashes to the internal reporting framework.

    See more
    Dima Korolev
    Dima Korolev
    Principal Maintainer at Current · | 3 upvotes · 21.7K views
    atFriendlyDataFriendlyData
    Ruby
    Ruby
    C++
    C++
    #BNF
    #NLP
    #Grammar

    Ruby NLP C++ Grammar #BNF

    At FriendlyData we had a Ruby-based pipeline for natural language processing. Our technology is centered around grammar-based natural language parsing, as well as various product features, and, as the core stack of the company historically is Ruby, the initial version of the pipeline was implemented in Ruby as well.

    As we were entering the exponential growth phase, both technology- and product-wise, we looked into how could we speed up and extend the performance and flexibility of our [meta-]BNF-based parsing engine. Gradually, we built the pieces of the engine in C++.

    Ultimately, the natural language parsing stack spans three universes and three software engineering paradigms: the declarative one, the functional one, and the imperative one. The imperative one was and remains implemented in Ruby, the functional one is implemented in a functional language (this part is under the NDA, while everything I am talking about here is part of the public talks we gave throughout 2017 and 2018), and the declarative part, which can loosely be thought of as being BNF-based, is now served by the C++ engine.

    The C++ engine for the BNF part removed the immediate blockers, gave us 500x+ performance speedup, and enabled us to launch new product features, most notably query completions, suggestions, and spelling corrections.

    See more
    Yshay Yaacobi
    Yshay Yaacobi
    Software Engineer · | 30 upvotes · 850K views
    atSolutoSoluto
    Docker Swarm
    Docker Swarm
    .NET
    .NET
    F#
    F#
    C#
    C#
    JavaScript
    JavaScript
    TypeScript
    TypeScript
    Go
    Go
    Visual Studio Code
    Visual Studio Code
    Kubernetes
    Kubernetes

    Our first experience with .NET core was when we developed our OSS feature management platform - Tweek (https://github.com/soluto/tweek). We wanted to create a solution that is able to run anywhere (super important for OSS), has excellent performance characteristics and can fit in a multi-container architecture. We decided to implement our rule engine processor in F# , our main service was implemented in C# and other components were built using JavaScript / TypeScript and Go.

    Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.

    After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...

    See more
    .NET
    .NET
    F#
    F#
    C#
    C#
    Docker
    Docker
    Kubernetes
    Kubernetes

    I've used .NET for many years, but only in recent years, after Microsoft introduced .NET Core, I've found a new love and excitement for the technology again. The main driver for us using .NET Core is not that it is cross platform compatible, open source or blazingly fast (which it is!), but the fact that we can use (what we consider) the best programming languages (mainly F# and C#) to carry out our jobs without sacrificing the other benefits.

    Today we run most of our web infrastructure on .NET Core in Docker containers, deployed into a Kubernetes cluster which spans across multiple time zones in the Google Cloud and we couldn't be happier. Due to the portability of the .NET Core platform we are even able to develop many new services as serverless functions with F# which has become an absolute game changer.

    See more
    Conor Myhrvold
    Conor Myhrvold
    Tech Brand Mgr, Office of CTO at Uber · | 11 upvotes · 873.7K views
    atUber TechnologiesUber Technologies
    RIBs
    RIBs
    Objective-C
    Objective-C
    Swift
    Swift

    Excerpts from how we developed (and subsequently open sourced) Uber's cross-platform mobile architecture framework, RIBs , going from Objective-C to Swift in the process for iOS: https://github.com/uber/RIBs

    Uber’s new application architecture (RIBs) extensively uses protocols to keep its various components decoupled and testable. We used this architecture for the first time in our new rider application and moved our primary language from Objective-C to Swift. Since Swift is a very static language, unit testing became problematic. Dynamic languages have good frameworks to build test mocks, stubs, or stand-ins by dynamically creating or modifying existing concrete classes.

    Needless to say, we were not very excited about the additional complexity of manually writing and maintaining mock implementations for each of our thousands of protocols.

    The information required to generate mock classes already exists in the Swift protocol. For Uber’s use case, we set out to create tooling that would let engineers automatically generate test mocks for any protocol they wanted by simply annotating them.

    The iOS codebase for our rider application alone incorporates around 1,500 of these generated mocks. Without our code generation tool, all of these would have to be written and maintained by hand, which would have made testing much more time-intensive. Auto-generated mocks have contributed a lot to the unit test coverage that we have today.

    We built these code generation tools ourselves for a number of reasons, including that there weren’t many open source tools available at the time we started our effort. Today, there are some great open source tools to generate resource accessors, like SwiftGen. And Sourcery can help you with generic code generation needs:

    https://eng.uber.com/code-generation/ https://eng.uber.com/driver-app-ribs-architecture/

    (GitHub : https://github.com/uber/RIBs )

    See more
    Conor Myhrvold
    Conor Myhrvold
    Tech Brand Mgr, Office of CTO at Uber · | 24 upvotes · 2M views
    atUber TechnologiesUber Technologies
    Jaeger
    Jaeger
    Python
    Python
    Java
    Java
    Node.js
    Node.js
    Go
    Go
    C++
    C++
    Kubernetes
    Kubernetes
    JavaScript
    JavaScript
    Red Hat OpenShift
    Red Hat OpenShift
    C#
    C#
    Apache Spark
    Apache Spark

    How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

    Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

    Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

    https://eng.uber.com/distributed-tracing/

    (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

    Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

    See more
    StackShare Editors
    StackShare Editors
    Prometheus
    Prometheus
    Chef
    Chef
    Consul
    Consul
    Memcached
    Memcached
    Hack
    Hack
    Swift
    Swift
    Hadoop
    Hadoop
    Terraform
    Terraform
    Airflow
    Airflow
    Apache Spark
    Apache Spark
    Kubernetes
    Kubernetes
    gRPC
    gRPC
    HHVM (HipHop Virtual Machine)
    HHVM (HipHop Virtual Machine)
    Presto
    Presto
    Kotlin
    Kotlin
    Apache Thrift
    Apache Thrift

    Since the beginning, Cal Henderson has been the CTO of Slack. Earlier this year, he commented on a Quora question summarizing their current stack.

    Apps
    • Web: a mix of JavaScript/ES6 and React.
    • Desktop: And Electron to ship it as a desktop application.
    • Android: a mix of Java and Kotlin.
    • iOS: written in a mix of Objective C and Swift.
    Backend
    • The core application and the API written in PHP/Hack that runs on HHVM.
    • The data is stored in MySQL using Vitess.
    • Caching is done using Memcached and MCRouter.
    • The search service takes help from SolrCloud, with various Java services.
    • The messaging system uses WebSockets with many services in Java and Go.
    • Load balancing is done using HAproxy with Consul for configuration.
    • Most services talk to each other over gRPC,
    • Some Thrift and JSON-over-HTTP
    • Voice and video calling service was built in Elixir.
    Data warehouse
    • Built using open source tools including Presto, Spark, Airflow, Hadoop and Kafka.
    Etc
    See more
    Martin Lonkwitz
    Martin Lonkwitz
    Software engineering at SVA · | 3 upvotes · 23.5K views
    C++
    C++
    Java
    Java

    Maybe not in everybody focus but I do like programming for @z/OS, @z/Linux and @z/VM with C++ , Java and Assembler . Who else love to dig into control blocks and get a deep dive into system resources to run things in a high valuable way ? And also go all the way up to the application to enlight all the infrastructure features to it ?

    See more
    C++
    C++
    Rust
    Rust

    Initially, I wrote my text adventure game in C++, but I later rewrote my project in Rust. It was an incredibly easier process to use Rust to create a faster, more robust, and bug-free project.

    One difficulty with the C++ language is the lack of safety, helpful error messages, and useful abstractions when compared to languages like Rust. Rust would display a helpful error message at compile time, while C++ would often display "Segmentation fault (core dumped)" or wall of STL errors in the middle. While I would frequently push buggy code to my C++ repository, Rust enabled me to only even submit fully functional code.

    Along with the actual language, Rust also included useful tools such as rustup and cargo to aid in building projects, IDE tooling, managing dependencies, and cross-compiling. This was a refreshing alternative to the difficult CMake and tools of the same nature.

    See more
    Visual Studio Code
    Visual Studio Code
    GitHub
    GitHub
    Linux
    Linux
    JavaScript
    JavaScript
    Swift
    Swift
    Java
    Java
    PHP
    PHP
    Python
    Python
    XML
    XML
    JSON
    JSON
    Git
    Git
    SVN (Subversion)
    SVN (Subversion)

    I use Visual Studio Code because at this time is a mature software and I can do practically everything using it.

    • It's free and open source: The project is hosted on GitHub and it’s free to download, fork, modify and contribute to the project.

    • Multi-platfo