Google recently announced a new programming language called ‘Carbon programming’ as a successor to C++. The developer community is curious, why do we need a new programming language? 

Google traditionally uses C++ as one of its core languages to develop products. It is a happy journey for Google as product offerings and Users’ scope is limited. The emerging markets opened the gates for Google to expand its customer base and introduce new products. 

Google’s new product ideas highlighted the adaptability and challenges of C++. Bringing additional features to C++ is a tough challenge for Google. The governing body ISO behind C++ is very strong and takes years to approve and adopt changes. Open source community needs to understand those features and adopt them at a faster pace. 

Shortfalls of C++

  • Years of technical debt inherited from C to C++(Bizarre operator overloading, precedence rules, integer promotions) 
  • Prioritizing backward compatibility which prevented fixing known problems 
  • Forcing complex design decisions to address complicated technical problems
  • Lack of package Management

Key factors of Carbon programming language

  • Building on an existing ecosystem, without bootstrapping a new one. 
  • Optimize learning curve and adoption path 
  • Ideally have tool assisted migration support 

Carbon goals as a C++ successor language

  • Interoperability with and migration from C++ code 
  • Performance critical software 
  • Software and language evolution 
  • Code that is easy to read, understand and write 
  • Practical safety and testing mechanism 
  • Fast and scalable development 
  • Supporting modern OS Platforms, hardware architectures and environments 

Current focus areas and roadmap of carbon

  • Going Public 
  • Completing the core language design
  • Developing a demo implementation of core design 

Community and culture of carbon

  • Modern open source development model (LLVM license, CLA, GitHub, Documentation etc.). 
  • Inclusive and welcoming, with a comprehensive code of conduct 
  • Friendly and approachable community 
  • Open process for governance and changes(Headed by group of people) 
  • Decisions with clear rationale, especially when a difficult tradeoff

As the name suggests, It’s an experimental language.