Archive

Archive for the ‘Programming Languages’ Category

Overview of C# 4.0

November 13th, 2008 Buu Nguyen 7 comments

Note: This article is also posted at The Code Project. Refer to this link. There are quite interesting discussions going on there.

The .NET framework 4.0 CTP has just been released and I think it’s a good time to explore the new features of C# 4.0. In this post, I will introduce about the following features: dynamic lookup, generics covariance and contravariance support, optional and named parameters.
Read more…

  • Share/Bookmark

When you learn new things, learn from books

August 19th, 2007 Buu Nguyen 25 comments

I can hardly believe that there is any Java developer who never reads a Java book, or “agile developer” who never reads a book on XP, Scrum… Unfortunately, there are just so many many of those. In fact, many people I know/interview have very fundamental gaps in their knowledge and in most cases I discover that it is partly due to the fact that they never spend time learning things from books. Reasons provided often are: not enough time, internet resources are more than enough etc. In most situations, I don’t think it’s a good mindset to develop software. Read more…

  • Share/Bookmark

Some basic (but effective) .NET interview questions

April 26th, 2007 Buu Nguyen 47 comments

I’ve been interviewing many .NET development developers lately and one of the most surprising things is that many candidates, both junior and senior level, cannot correctly answer questions which I consider very basic. I compile a short list of such questions below, hopefully it maybe helpful for you as interviewees or interviewers. Read more…

  • Share/Bookmark

Steve Yegge on the Next Big Language

February 13th, 2007 Buu Nguyen No comments

What Steve Yegge considers the Next Big Language.  Sound like

  • Ruby + (Java || C# 1.x/2.0)
  • (JRuby || Groovy || Ruby.NET) + good_tools (esp. IDE)
  • C# 3.0 && dynamic_typing (not just type inference) && more_syntactic_sugar (return multiple values, object-literal syntax for hashmap etc.)
  • Share/Bookmark

The Code is the Design

February 4th, 2007 Buu Nguyen 13 comments

1. The Code is the Design

At university, most of us are taught that the development of a software should go through the following phases: requirement specification, design, construction (or coding), and testing.  By gathering system requirements (e.g. from the clients, market researches etc.), analysts would come up with a bunch of functional and supplementary requirement documents, use case model and specifications during the requirement specification phase.  Read more…

  • Share/Bookmark

Design patterns: signs of languages' weaknesses?

January 31st, 2007 Buu Nguyen 8 comments

A nice post by Mark Dominus about design patterns. I include the post here in case the link is modified. You should also read the response by Ralph Johnson and Mark’s follow-up. Read more…

  • Share/Bookmark

Checked Exception

January 21st, 2007 Buu Nguyen 2 comments

Whether checked exception is good or bad is such a big debate which is currently still not agreed upon. Do a google with the keywords “checked exception”, you’ll see a bunch of stuffs to read. I’ll do a quick summary on the key things which are usually used as arguments by the folks on the net Read more…

  • Share/Bookmark

The Senior X-Language Developer

January 12th, 2007 Buu Nguyen 4 comments

Lately, I’ve seen some job posts in the local newspapers which seek for senior .NET developers and senior Java developer who have at least 4 years of experience in .NET/Java, and feel a little bit dissatisfied with them. Read more…

  • Share/Bookmark

Java and .NET Generics

January 10th, 2007 Buu Nguyen 12 comments

Java 5.0 and .NET 2.0 both support generic types, however, the implementations of generic in these platforms are different. Java makes use of a technique called “code sharing” in which there is just one type to represent all generic versions of that type, for example: ArrayList<Integer> and ArrayList<String> are both compiled down to ArrayList as the compiler perform erasure on generic types. On the other hand, .NET makes use of “JIT code specialization” technique in which there is a separate run-time representation of each version of a generic type (i.e. List<int> and List<string> both have unique representations at run-time). Read more…

  • Share/Bookmark

Script#

January 5th, 2007 Buu Nguyen 1 comment

Now, they even make a C#-2-JavaScript compiler, besides the GWT on the Java space. Guys, the next step is to completely eliminate all JavaScript we have to write, including those embedded in the HTML pages, port as many JavaScript libraries to .NET and Java as possible and vice versa, and make those libraries browser-independent. The point is to make JavaScript and its infamous browser-incompatibility problem completely transparent from application developers. By doing that, developers do not have to care about JavaScript any longer and it will become the machine language of the browsers. I do not care about the machine code since the appearance of Java and C#, neither do I want to care about JavaScript if you guys decide to generate it from Java/C#.

  • Share/Bookmark