added 2009 Wed Mar 25 12:14:41 by Umberto Zappia
Bruce Eckel???s recent blog post on the legacy left by C++ and Java generated a lot of reaction. While mentioning some design mistakes, he concludes that both languages have had a significant role in programming languages evolution and an important positive legacy. But is it not too early to talk about their legacy? Eckel, a former member of the C++ Standards Committee, recollects the decision made regarding backward compatibility of the language with C from the beginning:
Bruce Eckel???s recent blog post on the legacy left by C++ and Java generated a lot of reaction. While mentioning some design mistakes, he concludes that both languages have had a significant role in programming languages evolution and an important positive legacy. But is it not too early to talk about their legacy? Eckel, a former member of the C++ Standards Committee, recollects the decision made regarding backward compatibility of the language with C from the beginning:
added 2009 Thu Mar 19 4:46:36 by bloid
In CUDA, Supercomputing for the Masses: Part 10 of this article series on CUDA (short for "Compute Unified Device Architecture"), I examined CUDPP, the "CUDA Data Parallel Primitives Library." In this installment, I revisit local and constant memory and introduce the concept of "texture memory."
In CUDA, Supercomputing for the Masses: Part 10 of this article series on CUDA (short for "Compute Unified Device Architecture"), I examined CUDPP, the "CUDA Data Parallel Primitives Library." In this installment, I revisit local and constant memory and introduce the concept of "texture memory."
added 2009 Wed Mar 18 10:41:54 by bloid
A number of folks have asked me what tools and techniques I use to reverse engineer Cocoa executables. I thought it would be worth taking some time out from documenting undocumented APIs to show you how easy it is to do the same thing for yourself.
A number of folks have asked me what tools and techniques I use to reverse engineer Cocoa executables. I thought it would be worth taking some time out from documenting undocumented APIs to show you how easy it is to do the same thing for yourself.
added 2009 Wed Mar 18 8:12:27 by bloid
Bruce Eckel's recent blog post on The Positive Legacy of C++ and Java has opened a small can of worms on the Internet. The argument is on operator overloading[1]: tool of Satan or road to bliss? The arguing that's resulted is the usual well thought out, reasoned debate I've come to expect from software engineers. Which is to say, not at all.
Bruce Eckel's recent blog post on The Positive Legacy of C++ and Java has opened a small can of worms on the Internet. The argument is on operator overloading[1]: tool of Satan or road to bliss? The arguing that's resulted is the usual well thought out, reasoned debate I've come to expect from software engineers. Which is to say, not at all.
Herb Sutter: Use Threads Correctly = Isolation + Asynchronous Messages

DZone tags : c-and-cpp Programming
added 2009 Wed Mar 18 7:18:12 by bloid
Explicit threads are undisciplined. They need some structure to keep them in line. In this column, we're going to see what that structure is, as we motivate and illustrate best practices for using threads -- techniques that will make our concurrent code easier to write correctly and to reason about with confidence.
Explicit threads are undisciplined. They need some structure to keep them in line. In this column, we're going to see what that structure is, as we motivate and illustrate best practices for using threads -- techniques that will make our concurrent code easier to write correctly and to reason about with confidence.
added 2009 Wed Mar 18 7:06:30 by bloid
I???ve written before about the importance of cpu cache efficient algorithms. This is yet another adventure in that world. First, however, let???s start with a simple cache quiz: which code is faster?
I???ve written before about the importance of cpu cache efficient algorithms. This is yet another adventure in that world. First, however, let???s start with a simple cache quiz: which code is faster?
added 2009 Sun Mar 15 10:48:57 by Umberto Zappia
In a recent discussion, there were assertions that C++ was a poorly-designed language. I was on the C++ Standards Committee for 8 years, and saw the decisions take place. I think it's helpful to understand the language choices for both C++ and Java in order to see the bigger perspective. That said, I hardly ever use C++ anymore. When I do, it's either examining legacy code, or to write performance-critical sections, typically as small as possible to be called from other code (my preferred approach is to quickly write an app in Python, then profile it and if necessary improve performance by calling small portions of C++ using Python's ctypes library). Because I was on the C++ Standards Committee, I saw these decisions being made. They were all extremely carefully considered, far more so than many of the decisions made in Java.
In a recent discussion, there were assertions that C++ was a poorly-designed language. I was on the C++ Standards Committee for 8 years, and saw the decisions take place. I think it's helpful to understand the language choices for both C++ and Java in order to see the bigger perspective. That said, I hardly ever use C++ anymore. When I do, it's either examining legacy code, or to write performance-critical sections, typically as small as possible to be called from other code (my preferred approach is to quickly write an app in Python, then profile it and if necessary improve performance by calling small portions of C++ using Python's ctypes library). Because I was on the C++ Standards Committee, I saw these decisions being made. They were all extremely carefully considered, far more so than many of the decisions made in Java.
added 2009 Sun Mar 15 10:48:57 by Umberto Zappia
In a recent discussion, there were assertions that C++ was a poorly-designed language. I was on the C++ Standards Committee for 8 years, and saw the decisions take place. I think it's helpful to understand the language choices for both C++ and Java in order to see the bigger perspective. That said, I hardly ever use C++ anymore. When I do, it's either examining legacy code, or to write performance-critical sections, typically as small as possible to be called from other code (my preferred approach is to quickly write an app in Python, then profile it and if necessary improve performance by calling small portions of C++ using Python's ctypes library). Because I was on the C++ Standards Committee, I saw these decisions being made. They were all extremely carefully considered, far more so than many of the decisions made in Java.
In a recent discussion, there were assertions that C++ was a poorly-designed language. I was on the C++ Standards Committee for 8 years, and saw the decisions take place. I think it's helpful to understand the language choices for both C++ and Java in order to see the bigger perspective. That said, I hardly ever use C++ anymore. When I do, it's either examining legacy code, or to write performance-critical sections, typically as small as possible to be called from other code (my preferred approach is to quickly write an app in Python, then profile it and if necessary improve performance by calling small portions of C++ using Python's ctypes library). Because I was on the C++ Standards Committee, I saw these decisions being made. They were all extremely carefully considered, far more so than many of the decisions made in Java.
added 2009 Wed Mar 11 22:42:50 by zenruby
Redis (REmote DIctionary Server) is a key-value database written in C.
Redis (REmote DIctionary Server) is a key-value database written in C.
Sponsors
More tags
Apple Hardware Programming Security unix-linux ajax how-to javascript php java tools .net trends frameworks books research gui ruby open source reviews web 2.0 eclipse other languages perl python humor announcement News mobile Microsoft Windows usability database standards server web services games xml opinion css-html methodology
added 2009 Mon Mar 9 4:21:42 by aleks01
Starting interview process it is very important to refresh your memory on some basics. I have collected this resources over couple years and it is growing every year as the new technologies arise.
Starting interview process it is very important to refresh your memory on some basics. I have collected this resources over couple years and it is growing every year as the new technologies arise.
added 2009 Sat Mar 7 9:58:33 by sutts
Code is like traveling: the less baggage the better. No bags is bliss, a little backpack hardly noticeable. Chunky wheelie bag: bearable but irksome. But several chunky wheelie bags, and it starts to get ?? logistically challenging. Not to mention increased risk of hernia.
Code is like traveling: the less baggage the better. No bags is bliss, a little backpack hardly noticeable. Chunky wheelie bag: bearable but irksome. But several chunky wheelie bags, and it starts to get ?? logistically challenging. Not to mention increased risk of hernia.
added 2009 Wed Mar 4 15:24:31 by fc78870
This article provides 10 effective methods that can increase your productivity. The examples in this article use tcsh version 6 as a reference, but the ideas are portable to all variants of UNIX shells. It also refers to several open source tools available for the UNIX platform.
This article provides 10 effective methods that can increase your productivity. The examples in this article use tcsh version 6 as a reference, but the ideas are portable to all variants of UNIX shells. It also refers to several open source tools available for the UNIX platform.
added 2009 Wed Mar 4 5:17:25 by bloid
One of the biggest challenges in building a parallel program is dealing with data races. Cilk++ offers several tools and techniques to find and eliminate races from your program. Reducers provide a a powerful mechanism for eliminating races, but as Spiderman said, "with great power comes great responsibility."
One of the biggest challenges in building a parallel program is dealing with data races. Cilk++ offers several tools and techniques to find and eliminate races from your program. Reducers provide a a powerful mechanism for eliminating races, but as Spiderman said, "with great power comes great responsibility."
added 2009 Tue Mar 3 8:19:52 by theproductguy
One of those conditions prevalent within the environment of the World's Best Programmer is Clarity. Our journey in discovering (and coming announcement of who is) the World's Best Programmer starts with understanding the ideal environment within which s/he will/can thrive. This series explores what it takes to craft that ideal programmer environment and climaxes with the announcement of the World's Best Programmer!
One of those conditions prevalent within the environment of the World's Best Programmer is Clarity. Our journey in discovering (and coming announcement of who is) the World's Best Programmer starts with understanding the ideal environment within which s/he will/can thrive. This series explores what it takes to craft that ideal programmer environment and climaxes with the announcement of the World's Best Programmer!
added 2009 Mon Mar 2 7:19:22 by bloid
Earlier this week, Shaun Himmerick, executive producer for "Wheelman" and employee at Midway, told the hosts of the "This Xbox Life" podcast that developing for the Xbox 360 and the PlayStation 3 couldn't be any different.
Earlier this week, Shaun Himmerick, executive producer for "Wheelman" and employee at Midway, told the hosts of the "This Xbox Life" podcast that developing for the Xbox 360 and the PlayStation 3 couldn't be any different.
added 2009 Fri Feb 27 22:18:19 by theproductguy
Our journey in discovering (and coming announcement of who is) the World's Best Programmer starts with understanding the ideal environment within which s/he will thrive. This series explores what it takes to craft that ideal programmer environment and climaxes with the announcement of the World's Best Programmer!
Our journey in discovering (and coming announcement of who is) the World's Best Programmer starts with understanding the ideal environment within which s/he will thrive. This series explores what it takes to craft that ideal programmer environment and climaxes with the announcement of the World's Best Programmer!
added 2009 Tue Feb 24 8:47:47 by Umberto Zappia
Today I have compiled a list of ten programming languages with their application domains and little historic background. Also I have mentioned the names of the developers of these languages along with their little biography. I hope you will find this article quite useful. The list is developed by researching through language websites, developers??? biographies and other related search engines. These programming languages include C and C++ programming language, Java, Pascal, Python, Basic programming language, COBOL, FORTRAN, Lisp and Perl programming language. There are lots of other languages which I did not include as those languages are not commonly used or not developed by individuals or designed for web development which I will cover in upcoming articles.
Today I have compiled a list of ten programming languages with their application domains and little historic background. Also I have mentioned the names of the developers of these languages along with their little biography. I hope you will find this article quite useful. The list is developed by researching through language websites, developers??? biographies and other related search engines. These programming languages include C and C++ programming language, Java, Pascal, Python, Basic programming language, COBOL, FORTRAN, Lisp and Perl programming language. There are lots of other languages which I did not include as those languages are not commonly used or not developed by individuals or designed for web development which I will cover in upcoming articles.
added 2009 Mon Feb 23 9:00:05 by Umberto Zappia
So, two different posts crossed my transom recently, that I felt I had to respond to. First, and most egregiously, there???s The Daily WTF???s Programming Sucks! Or At Least, It Ought To. Then there is this blog post on Why Functional Programming Doesn???t Catch On. I am of the opinion, having covered much of the computer industry one way or another, that there are no non-trivial, uninteresting problems. The reason is just this- any problem that is boring, trivial, and/or mechanical should be done by the computer. I mean, come on, people! We???re programmers. If anyone anywhere should be able to harness the power of computers to make our work easier, it should be us programmers- the ones harnessing the power of computers to make everyone else???s work easier!
So, two different posts crossed my transom recently, that I felt I had to respond to. First, and most egregiously, there???s The Daily WTF???s Programming Sucks! Or At Least, It Ought To. Then there is this blog post on Why Functional Programming Doesn???t Catch On. I am of the opinion, having covered much of the computer industry one way or another, that there are no non-trivial, uninteresting problems. The reason is just this- any problem that is boring, trivial, and/or mechanical should be done by the computer. I mean, come on, people! We???re programmers. If anyone anywhere should be able to harness the power of computers to make our work easier, it should be us programmers- the ones harnessing the power of computers to make everyone else???s work easier!
added 2009 Mon Jan 12 11:49:38 by AJ32
A tutorial describing how to create better solutions by planning and using an Iterative Design Process.
A tutorial describing how to create better solutions by planning and using an Iterative Design Process.
added 2009 Sun Jan 11 17:10:39 by Motion Control
I have tried to make a little contribution by illustrating some of the really basic C++ idioms and conventions using a contrived but still complete example. Please take a look at this presentation.
I have tried to make a little contribution by illustrating some of the really basic C++ idioms and conventions using a contrived but still complete example. Please take a look at this presentation.
added 2009 Fri Jan 9 19:23:13 by bloid
What does the volatile keyword mean? How should you use it? Confusingly, there are two common answers, because depending on the language you use volatile supports one or the other of two different programming techniques: lock-free programming, and dealing with 'unusual' memory. (See Figure 1.)
What does the volatile keyword mean? How should you use it? Confusingly, there are two common answers, because depending on the language you use volatile supports one or the other of two different programming techniques: lock-free programming, and dealing with 'unusual' memory. (See Figure 1.)
added 2009 Fri Jan 9 14:25:58 by bloid
One issue with the common C compilation model is that it can easily lead to unnecessary coupling between files. This coupling can require users of an API to either directly or indirectly include unnecessary header files. These additional header files may cause frustration as users attempt to figure out what additional header files or include paths are needed to use the API. Even if your header file includes the necessary header files or your build environment centralizes all header files in a single location, these additional header files can still be problematic as they can lead to longer compile times and add additional symbols to the global namespace of the translation unit, which increases the chance of conflicts.
One issue with the common C compilation model is that it can easily lead to unnecessary coupling between files. This coupling can require users of an API to either directly or indirectly include unnecessary header files. These additional header files may cause frustration as users attempt to figure out what additional header files or include paths are needed to use the API. Even if your header file includes the necessary header files or your build environment centralizes all header files in a single location, these additional header files can still be problematic as they can lead to longer compile times and add additional symbols to the global namespace of the translation unit, which increases the chance of conflicts.
added 2009 Mon Jan 5 9:50:25 by puredanger
Almost a year ago I did some Apache and Nginx performance testing. Apparently I have the bug again and have done some performance testing on Nginx, Yaws and MochiWeb. The latter two being Erlang based. Again deathmatch may be an overstatement but this is my attempt at gleaning some interesting performance data from some high performance web servers.
Almost a year ago I did some Apache and Nginx performance testing. Apparently I have the bug again and have done some performance testing on Nginx, Yaws and MochiWeb. The latter two being Erlang based. Again deathmatch may be an overstatement but this is my attempt at gleaning some interesting performance data from some high performance web servers.
added 2009 Sun Jan 4 20:29:21 by bloid
So, I???m reading Brandon Werner???s post on STM, about why Software Transactional Memory hasn???t caught on yet. There are three problems with STM that make it a CS Researcher Full Employment Act, allowing many to try and none to succeed in implementing STM for ???mainstream?? languages like Java, C#, and C++. They are:
So, I???m reading Brandon Werner???s post on STM, about why Software Transactional Memory hasn???t caught on yet. There are three problems with STM that make it a CS Researcher Full Employment Act, allowing many to try and none to succeed in implementing STM for ???mainstream?? languages like Java, C#, and C++. They are:
added 2009 Sun Jan 4 18:20:40 by bloid
I thought I???d comment on my own post about C# vs C++ performance. The purpose of the test was to compare the time to sort 128-byte objects in C++ vs C#, nothing more. Again if you understood that, then you can propbably see that the performance measured has more to do with execution envrionments than languange differences.
I thought I???d comment on my own post about C# vs C++ performance. The purpose of the test was to compare the time to sort 128-byte objects in C++ vs C#, nothing more. Again if you understood that, then you can propbably see that the performance measured has more to do with execution envrionments than languange differences.
added 2009 Sun Jan 4 8:17:43 by bloid
If you were on reddit today, you probably saw this article, damning C#???s performance as being ten times worse than C++???s. Holy shit balls, batman!
If you were on reddit today, you probably saw this article, damning C#???s performance as being ten times worse than C++???s. Holy shit balls, batman!
added 2009 Sun Jan 4 2:59:03 by puredanger
Not sure how many people have seen this story but the Microsoft Zune had a widespread problem where it died if powered up on Dec. 31st and refused to start. Apparently it was a leap year problem in calculating the length of the leap year. Even better, here???s the code in question.
Not sure how many people have seen this story but the Microsoft Zune had a widespread problem where it died if powered up on Dec. 31st and refused to start. Apparently it was a leap year problem in calculating the length of the leap year. Even better, here???s the code in question.
added 2009 Thu Jan 1 8:35:49 by Loover
IndieLib is a c++ 2.5d engine for game development and fast game prototyping in a really easy way. Internally it uses Direct3d for hardware acceleration, but doesn???t use DirectDraw or ID3DXSprite, it directly draws textures on polygons. The engine is focused in fast 2d rendering, but also allows you to use 3d models. The main IndieLib features are??
IndieLib is a c++ 2.5d engine for game development and fast game prototyping in a really easy way. Internally it uses Direct3d for hardware acceleration, but doesn???t use DirectDraw or ID3DXSprite, it directly draws textures on polygons. The engine is focused in fast 2d rendering, but also allows you to use 3d models. The main IndieLib features are??







