4,323 reputation
11427
bio website amadeus.com
location Sophia-Antipolis, France
age 30
visits member for 3 years, 9 months
seen yesterday

C++ software engineer for Amadeus since January 2010.

Avid follower of the Clang project.

Known to dabble in Python for scripting purposes.

Interested in language design, and thus very interested in Rust (typestate, concurrency) and interested in Haskell (type system, functional paradigm), which I unfortunately did not had time to explore yet...

Interested in compiler design and low-level technics: Memory Allocation/Garbage Collection, Compiler Optimizations, Link-time Optimizations.

Favorite answers of mine:

Favorite answers from others:


2d
comment Are error variables an anti-pattern or good design?
@Dunk: I don't think that my answer makes the apology of exceptions either; though, it might well depend on the type of code you write. My personal work experience tends to favor systems that fail in the presence of errors because silent data corruption is worse (and undetected) and the data I work on is valuable to client (of course, it also mean urgent fixes).
2d
awarded  Nice Answer
Jun
25
comment Are error variables an anti-pattern or good design?
@rwong: regarding errno, I agree, however this makes it more complicated to write correct wrappers.
Jun
18
awarded  Custodian
Jun
18
reviewed Approve suggested edit on Are error variables an anti-pattern or good design?
Jun
18
reviewed Approve suggested edit on Are error variables an anti-pattern or good design?
Jun
18
answered Are error variables an anti-pattern or good design?
Jun
18
comment Are error variables an anti-pattern or good design?
@user2357112: actually, it is a problem for all languages that have a different notion of threads. Many of the new languages have "green-threads" that are not OS-threads, and wrapping C-libraries that use thread-local variables in those languages is a pain (and may quickly lead to bugs). Thread-local variables ARE global variables, and suffer from most of their woes.
Jun
18
comment Are error variables an anti-pattern or good design?
Just because a language supports exceptions does not make them a panacea. Exceptions introduce hidden execution-paths, and thus their effects need be properly controlled; try/catch are easy to add, but getting the recovery right is hard, ...
Jun
9
awarded  Good Question
May
24
comment Which low-level programming language is most similar to Python?
@Joe: I just learned yesterday that Nimrod GC is not thread-safe yet, so you might want to restrict yourself to single threads at the moment. I would also point out that Go is nowhere close to C's performance; it's good for web-server workloads (aka, I/O) but not as efficient in heavy computations, and unlikely to ever be. My personal recommendation here would be Rust, because Mozilla and Samsung are both pushing for efficiency (it matters a lot to them).
May
18
comment Black box or white box testing - which do you do first?
Then we do not practice TDD the same way. TDD for me is about enforcing the specifications of a class/function: the tests are written to check that the class/function behaves as specified, but could care less how the code behaves behind the scenes so long as those specifications are upheld... which is necessary given that the tests are written before the functionality.
May
8
comment If null is bad, why do modern languages implement it?
@supercat: I could not agree more. Or as Einstein is paraphrased: "Make everything as simple as possible, but not simpler."
May
3
comment If null is bad, why do modern languages implement it?
@Doval: well, OOP might have been necessary for Java, but it was not for C :) But it's true that Java aimed at being simple. Unfortunately people seem to assume that a simple language leads to simple programs, which is kinda strange (Brainfuck is a very simple language...), but we certainly agree that complicated languages (C++...) are not a panacea either even though they can be incredibly useful.
May
3
answered If null is bad, why do modern languages implement it?
Mar
28
comment What is the benefit of not using Hungarian notation?
In C++, that would usage of operator-> (meant for proxies) and appropriate usage of const; I understand that not many languages have this flexibility unfortunately.
Mar
28
comment What is the benefit of not using Hungarian notation?
@supercat: just like struct CarId { int data; }; is a viable way to avoid mixing cars ID and drivers ID, you can create a newtype (Proxy) for each of those arrays, each with only a subset of the available methods so that the compiler enforces correct usage.
Mar
26
comment Worst practices in C++, common mistakes
@Demetri: I know of stack-allocated constructs, is it possible though to have a destructor on a heap-allocated (garbage collected) construct and in this case do you not have the same issue of cycle than Python has ?
Mar
26
comment Worst practices in C++, common mistakes
@Demetri: I am not too familiar with D, could you explain how RAII interacts with Garbage Collection ? I know that in Python you can write a "deinit" method, however the documentation warns that in case of cycle of references some objects will not see their deinit method called.
Jan
7
comment Worst practices in C++, common mistakes
@ClausJørgensen: Well, the solution unfortunately is not really "showy" since it involves just File file("some.txt"); and that's it (no open, no close, no try...)