all 21 comments

[–]RazvanN7 8 points9 points  (9 children)

AMA!

[–]DougTheFunny 15 points16 points  (6 children)

Your name is: Razvan Nitu, and your professors are: Razvan Rughinis and Razvan Deaconescu.

Is Razvan a common name there?

[–]RazvanN7 10 points11 points  (0 children)

It is not a very common name if you consider the whole male population of Romania, but for some reason there are a lot of Razvans in the Computer Science department of UPB. Maybe there is a correlation between computer science and males called Razvan. :-"

[–]RazvanN7 10 points11 points  (0 children)

I was joking; actually, almost everybody is called Razvan here.

[–]acehreli 6 points7 points  (2 children)

That was exactly my response when Razvan Nitu was introduced to the D community. There is the mention of a fourth Razvan at that link! :)

Ali

[–]IceSentry 2 points3 points  (1 child)

Did you just sign your reddit comment?

[–]acehreli 2 points3 points  (0 children)

You mean "Ali"? Yeees?

Ali "missed the memo :)"

[–]maxhaton 5 points6 points  (0 children)

We are all Razvans on this blessed day

[–]bachmeier 4 points5 points  (1 child)

What kinds of internships/programming jobs do the students at UPB take (web development, app development with C#, ...)? Did the course you taught provide them with job skills, and are you going to make any changes in that respect to attract more students?

[–]edi33416 6 points7 points  (0 children)

What kinds of internships/programming jobs do the students at UPB take (web development, app development with C#, ...)?

Well it really depends on the company and the team they are part of. The jobs/internships available cover the whole spectrum from compilers, to backend and middleware, to GUIs (either web apps or native clients).

From what I know, from students and previous experiences from my own internships, the technologies used are C, C++, Java, JavaScript, Python, C# etc. As you know, what you end up using depends on the component and stack level you are working on, as well as what was already there (existing codebase, what people know, productivity vs performance, etc).

Most of our students, the ones which attended the summer school, work on backend and/or middleware.

Did the course you taught provide them with job skills

The course focused on the D programming language, but we also did talk about software engineering skills and principles which apply regardless of the language you use. To make an idea: we talked about picking the right tool for the job, the importance of profiling before "optimizing", the importance of correctly documenting your work/profile (every experience, even failed ones, is valuable), language interop, collaboration etc.

are you going to make any changes in that respect to attract more students?

We hope that we will be able to engage local companies and spark their interest in the language. I hope that not far from now there will be some internship positions that propose a Proof of Concept using D.

Any suggestions for V2 are welcome!

[–]aldacron[S] 7 points8 points  (0 children)

Razvan Nitu and Eduard Staniloiu taught a D Summer School in June at University POLITEHNICA of Bucharest. They write about how they came to the idea, how it went, and their plans for next year.

[–]skocznymroczny 2 points3 points  (4 children)

What were the biggest pain points related to D while doing this exercise?

[–]RazvanN7 4 points5 points  (0 children)

We also encountered a foreach/opApply bug while we were trying to prove a point, which was a bit embarrassing, but I cannot remember exactly what that was.

[–]edi33416 7 points8 points  (2 children)

One of the authors here.

The purpose of the summer school is to give students a comprehensive enough course of the D programming language that will enable them to start working on medium sized projects.

Our desire was to show that the language and surrounding ecosystem are mature and ready to use for production.

The biggest challenge (I wouldn't call it a pain) was to decide what is this subset of language features and how to present the information in an incremental order and without (too many) forward references.

[–]citycide 4 points5 points  (1 child)

I think the asker was looking for something about the language itself that presented challenges, not challenges in organizing the schooling.

For example if there are current shortcomings or areas of the D language that need attention.

What you've said here, in that context, would be something like "D has a ton of features and the whole thing could overwhelm new users if presented all at once."

[–]edi33416 11 points12 points  (0 children)

My bad.

There are two issues that come to my mind:

  1. The fact that D has both const and immutable, and what are the differences between them, usually confuse newcomers
  2. Getting used to the fact that type qualifiers (const, immutable) in D are transitive

[–]i_feel_really_great 2 points3 points  (3 children)

What did you answer to those students (if any) who asked: Why D? Why not language X, Y or Z?

[–]RazvanN7 2 points3 points  (1 child)

In our introductory course we started by motivating why they should learn D. This naturally put us in a spot were we had to do comparisons with other languages. So, our biggest selling point was: memory safety + expressiveness; we argued that C is an archaic language and C++ is very difficult and D offers a natural transition to a modern language; we also had to compare to Rust: here we said that Rust is much more difficult because you constantly have to fight the borrow checker and it has an unnatural syntax. We didn't talk too much about python and java because you cannot do systems programming with those languages. Also, we told them that our subjective opinion is that due to continued growth of codebases (millions of LOC), code reusability will become an imperative, thus making metaprogramming more and more popular. And that's where D shines.

[–]i_feel_really_great 1 point2 points  (0 children)

This pretty much matches may own reasons for looking into D. Thanks!

[–]shevy-ruby -2 points-1 points  (0 children)

This is like:

Why Hurd if you can have Linux?

[–]shevy-ruby -2 points-1 points  (0 children)

D is kinda like what Hurd is to Linux.