community

Functional Programming Is Not a Silver Bullet--Jonathan Boccara

Nothing is perfect.

Functional Programming Is Not a Silver Bullet

by Jonathan Boccara

From the article:

The past few years have seen a boost in popularity of the functional programming paradigm. Languages that were used mostly in academic circles for decades are now in broader use amongst programmers. And every couple of months, another functional language hits the news and gets its trail of followers.

Why is that? Functional programming allow for safer and more robust code, in part due to one of its core principles: values are not mutable. A consequence of this is that there is no side effects. We can apply this principle in any language, including in C++, by coding with the least side effects possible.

While it certainly helps putting together a better design of code, it’s important to realize that it’s not the panacea, that this principle doesn’t solve in itself all design issues. Nothing is the panacea anyway, but in this time of gold rush towards functional programming, we could be tricked into thinking it will automatically lead to good design.

Functional programming is known to reduce coupling in code. We’ll briefly go over what coupling is, what sort of coupling functional programming prevents, and how some other dangerous forms of coupling can still sneak in even with functional programming. You want to pay attention to those to preserve the design of your code...

Getting You There - Your C++ Standardization Efforts in 2019--JeanHeyd Meneide

You can also do it!

Getting You There - Your C++ Standardization Efforts in 2019

by JeanHeyd Meneide

From the article:

If you’re facing Financial Hardship, are a student, are self-employed, and have written a proposal that the chairs of the C++ Standardization Groups (Library Evolution, Evolution, Core, Library, Parallelism/Concurrency, and similar study groups) deem necessary to help move the language forward (in large or small ways), you can apply for Grant Assistance from the C++ Standards Foundation. If you have an employer but that employer will not cover the full cost, you have papers to present (yours or on behalf of others) and similar, you can apply for Travel Assistance.

I will talk about Travel Assistance, because that is what I have applied for and successfully received. A huge thanks to the Standard C++ Foundation for making something like this available! I can only hope that my work will continue to be things that they need, and that I can continue to write papers and do work on behalf of the C++ Community to move our various industries forward...

REPL (Read-Eval-Print-Loop) in C++: hands-on session--Pascal Thomet

New way to program?

REPL (Read-Eval-Print-Loop) in C++: hands-on session

by Pascal Thomet

From the article:

A Read-Eval-Print-Loop (REPL) enables to leverage very rapid and robust application development, prototyping and testing. This kind of development environment originates from the early days of functional programming (Lisp machines and the like), and is common in functional and scripting languages.

As a compiled language, C++ was out of the loop for a long time...

A Simple Timer in C++--Jonathan Boccara

Simple indeed.

A Simple Timer in C++

by Jonathan Boccara

From the article:

Some languages, such as JavaScript or Visual Basic, offer the feature of a timer, that is to say an object that calls some code at defined intervals. At the time of this writing (C++17) and to my knowledge, C++ doesn’t offer such a feature...

C++, C# and Unity

The place C++ will have at Unity:

C++, C# and Unity

by Lucas Meijer

From the article:

C++ is not great at this task. I want my loop to be vectorized, but a million things can happen that might make the compiler not vectorize it. It might be vectorized today, but not tomorrow if a new seemingly innocent change happens. Just convincing all my C/C++ compilers to vectorize my code at all is hard.

Did anybody consider adding a language pragma to C++?

Interesting question.

Did anybody consider adding a language pragma to C++?

From the article:

For people who don't know, language pragmas are the way that ghc (Glasgow Haskell Compiler) allows you to turn on and off language features. In C++, this would mean that I can write something like:

#language <no_c_style_cast>

And that would disable C-style cast for that source file. Don't you think that it would be useful to standardize this to allow people to willingly disable some old legacy C++ features in newer code?

Boost 1.69.0

New release.

Boost 1.69.0

From the article:

Notes for non-Windows users
The Boost build system now supports visibilities. If you are building shared libraries, they will use hidden visibility by default. As a result Boost shared libraries become smaller, load faster and have less chances to get a symbol collision.

See Boost.Build visibility and local-visibility for more info.

To disable that feature you can use use a command line ./b2 visibility=global to build...

C++Now 2019 Call for Submissions is Live

C++NowC++Now 2019 will be held in Aspen, May 5–10, 2017.

C++Now 2019 Call for Submissions

From the invitation:

The C++Now 2019 Call For Submissions is open! We invite all members of the C++ community, including first time submitters, to submit session proposals to the 8th annual C++Now Conference: C++Now 2018 (Aspen CO, USA, May 5 – 10, 2019).

C++Now builds upon the resounding success of previous BoostCon and C++Now conferences. We look forward to considering your proposals. You will be joining leading speakers from the entire C++ community in making C++Now 2018 better than ever.

Overload 148 is now available

ACCU’s Overload journal of December 2018 is out. It contains the following C++ related articles.

Overload 148 is now available

From the journal:

Revolution, Restoration and Revival.
Trends cycle in seasons. Frances Buontempo wonders what programmers should on the lookout for.

Diseconomies of Scale.
Bigger is not always better. Allan Kelly considers when smaller is more productive.

Flip Model: A Design Pattern.
Publishing dynamic, complex data to many clients in a threadsafe manner is challenging. Daniele Pallastrelli presents the Flip model pattern to overcome the challenges.

Memory Management Patterns in Business-Level Programs.
There are many memory management patterns. Sergey Ignatchenko considers these from an application level.

Compile-time Data Structures in C++17: Part 3, Map of Values.
A compile time map of values allows code to be tested more easily. Bronek Kozicki demonstrates how to avoid a central repository of values.

Algol 68 - A Retrospective.
Algol 68 has influenced programming languages in many ways. Daniel James reminds us just how many.

Measuring Throughput and the Impact of Cache-line Awareness.
How do you measure throughput? Richard Reich and Wesley Maness investigate suitable metrics.