Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Dethroning C++

Name: Anonymous 2015-03-16 12:34

I've designed a checklist that would instantly decide if language will be a C++ successor or not. Every line is requirement for a "language that will dethrone C++", 9/10 wouldn't cut it.
1.No dependencies on GC/refcounting.
2.Object abstraction system(as powerful as in C++).
3.Same or better execution speed(compared to similar C++ code).
4.Type-inference,type-inferred lambda expression.
5.Strict type system with escapes(fast casts, conversion).
6.Clear and terse imperative syntax.
7.Large standard library with functional/OOP/procedural programming support. Must include threading and graphics.
8.Support for low-level code(such as inline assembler and OS/hardware interfaces).
9.Text-generator(aka #define a(b)) and code-generator(template/mixin/lispmacro) macros.
10.Operator/function overloading without restrictions.

Name: Anonymous 2015-03-20 14:27

Lower your parens and surrender your (dead) dogs, resistance is futile. Your[culture]=adapt++ -> Sepples us.
https://chriskohlhepp.wordpress.com/lambda-over-lambda-in-cplusplus14/

Name: Anonymous 2015-03-20 14:27

Lower your parens and surrender your (dead) dogs, resistance is futile. Your[culture]=adapt++ -> Sepples us.
https://chriskohlhepp.wordpress.com/lambda-over-lambda-in-cplusplus14/

Name: Anonymous 2015-03-20 16:56

>>35
Integer conversions most certainly can be checked, and this checking can be performed statically with zero runtime overhead in many cases. It is only necessary to provide escape mechanisms for raw word / bit level access in a very few cases, even in high performance or embedded code.

That C or C++ aren't required to do so by default is a weakness of those particular languages. Any C or C++ codebase of sufficient size is forced to implement its own abstractions for common integer conversion operations precisely because it is so easy to get them wrong.

Name: Anonymous 2015-03-20 18:21

>>41,42
auto curry = [](auto f) {
return [=](auto x) {
return [=](auto y) {
return f(x, y); };}; };
That was JAVASHIT QUALITY!

Speaking of JS mongs, I blame exactly the Javashit-is-Lisp-with-C-syntax mongs for propagating the idiocy that λ ⇒ Lisp.

Name: Anonymous 2015-03-21 19:03

"Mature, well-established codebase"

Name: Anonymous 2015-03-22 8:31

"The Architecture of C++ Standard Library" by H.P.Lovecraft

Name: Anonymous 2015-03-22 8:50

>>46
Fuck yeah.

Name: Anonymous 2015-03-25 18:19

Sepples would be Dethroned by Sepplisp: Sepples with Syntactic Macros and hybrid syntax. The Lisp Weenie Nightmare.

Name: Anonymous 2015-03-25 18:42

“Any application that can be written in JavaScript, will eventually be written in JavaScript.”
— Atwood’s Law by Jeff Atwood
https://medium.com/@slsoftworks/javascript-world-domination-af9ca2ee5070

Name: Anonymous 2016-11-11 16:46

auto provides only compile-time type inference, since the C/C++ type system only exists at compile time. The only type system available at runtime is that of machine code, which doesn't even have a notion of data type, as all machine code data is just strings of bits. Functions and instructions are typed insofar as different bit manipulations are needed to perform equivalent operations on different data types. This is the opposite of how C operators work: the '+' operator for example can mean either integer addition or floating point addition, depending on the types of the operands. In machine code on the other hand, integer addition and floating point addition are two different instructions, and the operands are interpreted differently depending on which instruction is used. Runtime type inference would require adding overhead to every variable to store its type, and checking types before every operation. That certainly could be done, but C focuses on eliminating any and all unnecessary overhead in order to provide maximum performance.

Name: Anonymous 2016-11-11 17:00

Runtime type inference would require adding overhead to every variable to store its type, and checking types before every operation
Wrong

Name: Anonymous 2016-11-11 17:46

>>51
If the type can change(fully dynamic) the system must store the type. Valid dynamic variable in js
vat x=1.0
x="String"
x=[1,["What","is","this","i'm","not","good", "with", "computers"]]

Name: Anonymous 2016-11-11 17:55

Rust:
[x]1.No dependencies on GC/refcounting.
[traits]2.Object abstraction system(as powerful as in C++).
[almost]3.Same or better execution speed(compared to similar C++ code).
[x]4.Type-inference,type-inferred lambda expression.
[unsafe]5.Strict type system with escapes(fast casts, conversion).
[x]6.Clear and terse imperative syntax.
[almost]7.Large standard library with functional/OOP/procedural programming support. Must include threading and graphics.
[x]8.Support for low-level code(such as inline assembler and OS/hardware interfaces).
[macro_rules]9.Text-generator(aka #define a(b)) and code-generator(template/mixin/lispmacro) macros.
[traits]10.Operator/function overloading without restrictions.

Name: Anonymous 2016-11-11 18:46

CHECK MY DUBS MOTHERFUCKERS!!!!!!!

Name: Anonymous 2016-11-11 19:03

#include <dubsio.h>

dubsint_t dubsmain(dubsint_t dubsc, dubschar_t **dubsv) {
dubsprintf("VALID DUBS CODE");
check em;
}

Name: Anonymous 2016-11-11 19:24

>>55
please sir could you provide me with the code of dubsio.h

Name: Anonymous 2016-11-11 21:17

/prog/ has finally became pro/g/

Name: Anonymous 2016-11-12 3:31

>>53
[x]1.No dependencies on GC/refcounting.
Ehm, wrong

Name: Anonymous 2016-11-13 1:09

Make C++ great again

Name: Anonymous 2016-11-13 1:34

Name: Anonymous 2016-11-15 16:16

>>1
Dlang is quite close.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List