14
\$\begingroup\$

I'm not a big contributor to Code Review, at the moment more of a reader.

I came across this answer, which contains the following snippet:

Ok first of all.. Silverlight Rant.

Silverlight was a flop. HTML5 + WebGL, on the other hand, is the future of handling anything that anyone ever thought Silverlight might do. If you want to maintain highly supported, future-proof practices, start doing some WebGL research. It's INCREDIBLE. Silverlight is another one of Microsoft's attempts to avoid standardization and control the web with their own tech. They've failed every single time so far.

Lesson: Avoid Microsoft's proprietary stuff when possible.

I don't feel that provides any help for the OP, and is an opinion, whilst I don't disagree that Silverlight isn't as big as Microsoft expected. If the question had been help with C# code, would a valid answer have been "You should use Java!"? Personally I would think that any answer should not try and change the programming language of choice but instead just help "Review" the code that was provided.

\$\endgroup\$
19
\$\begingroup\$

Per se, rants are OK: not every review has to use boring technical language, and a well-placed rant or swearword livens up a post. In this specific case, the rant only makes up a small part of the answer.

I think the real question is: Is criticizing the technology choices in a piece of code a valid part of a code review? My answer is a “yes, but”: If code uses outdated libraries, idioms, or techniques, this should be brought to the OP's attention. Everything that's not an industry best practice is a valid target of criticism. Mentioning how problematic Silverlight is (and even providing an alternative!), is therefore correct. Interestingly, that answer misses the real issue with Silverlight, which is a lack of cross-platform support (e.g. mobile devices running iOS), and actually a lack of support in general.

However, code is often subject to a variety of external constraints and guarantees which can make otherwise dubious technology choices quite viable. An extreme example would be writing some new functionality in Cobol – which is almost a necessity if that functionality is to be incorporated into an existing Cobol program. It is fair to assume that the developer writing the code knows more about these external constraints than some random guy on the internet looking for aspects to criticize. The code in this question for example doesn't really use Silverlight, but just makes sure it's installed. This code might be an addition to an existing system, in which case the technology choice of Silverlight was not a design choice when writing the code that was given to review.

\$\endgroup\$
  • 5
    \$\begingroup\$ Can you believe the're still teaching us Cobol as my current university's popular language? It's a legacy language, but a bunch of old companies use it hugely still.. Man, the syntax for Cobol.. Anyway, Cobol rant over ;) +1 \$\endgroup\$ – Viziionary Jul 23 '14 at 7:17
18
\$\begingroup\$

Putting on my regular user hat, rather than my moderator hat

The 'rant' about Silverlight is, if contextualized properly, a useful part of the review. It is useful to point out that the technology has significant limitations that are well understood and documented.

What I am more averse to is the use of hyperbole, and strong and unsubstantiated sweeping generalisations that are misleading or just plain wrong.

Let me break down some of what I mean:

  • Silverlight was a flop - really? By what standards? Let's look at some evidence:

    Silverlight has been used to provide video streaming for many high profile events, including the NBC coverage of the 2008 Summer Olympics in Beijing, the 2010 Winter Olympics in Vancouver, and the 2008 conventions for both major United States political parties. Silverlight is also used by Netflix for its instant video streaming service.

  • HTML5 + WebGL, on the other hand, is the future of handling anything that anyone ever thought Silverlight might do - really? There are so many sweeping generalisations and assumptions in that:

    • an unsolicited recommendation of an alternative technology is OK, but it should be justified by pertinent facts
    • what 'future'? Tomorrow, next year? next decade? next century?
    • what 'anything'? Does HTML5 and WebGL integrate with other software like Silverlight does? Can you write a library of code in any .net language and have the same code run a web-based application and a desktop app?
    • what 'anyone' and what 'thought'? does that even need a criticism?
  • If you want to maintain highly supported, future-proof practices, start doing some WebGL research.

  • It's INCREDIBLE. - so is Silverlight. So was HTML1. What does INCREDIBLE mean? In all caps does it mean something different? "Incredible" means "Impossible to believe". That about sums it up ;-)

  • Silverlight is another one of Microsoft's attempts to avoid standardization and control the web with their own tech. Meh, that's a statement I can neither confirm nor refute, but, Silverlight did what I thought it was meant to do: which was enable rich applications in the browser with very low migration costs for existing investments in software.... i.e. take your existing programs, and make them available wherever there's a supported browser with relatively little porting work.

    The fact that the use-cases for Silverlight made more things possible, and that Microsoft marketed towards those oportunities is neither here nor there....

    .... but, is it an attempt to 'avoid standardisation and control the web'? Nah, at the time there was no standardisation for what Silverlight did. Sure, Microsoft has done some nasty things, and I disagree with a lot of them, but is Silverlight part of some strategy to rule the world?

  • They have failed every time so far. - that's just wrong .... despite a number of high profile instances, they have also succeeded a number of times too, MDX, WAV, and others. I am sure that the influence of Microsoft on web standards is far more pervasive than the few high-profile failures of theirs. The success of Intel and Linux can, in large part, be attributed to the success of Microsoft.... why Ethernet became more popular than token ring, etc. The entire user interface of the graphical parts of the world-wide-web was influenced by Windows for the foundational years of HTML.... in fact, your assertion that HTML5 + WebGL is 'the way' is supporting Microsoft's influence of web standards. How much of OpenGL was done to keep up with DirectX, etc. How was HTML5 defined to ensure compliance with Microsoft requirements. The influence Microsoft has over the web is probably significantly more than any other company or entity, probably exceeding all others like Apple, and Intel, and probably even IBM. Google's influence may currently be larger than Microsoft's, but Google is still a new kid on the block, and is adapting what already exists. It is still a teenager in 'internet-years'

  • Lesson: Avoid Microsoft's proprietary stuff when possible.

    well, that's just stupid. They make some fantastic products. Despite a number of issues, I use Windows every day (I also use Linux, AIX, and others each day). It is certainly more affordable than all other alternatives other than Linux. For various purposes, Windows is the only value-appropriate solution.

    Additionally, 'when possible' is always possible. You can just not use anything with any technology in it. That's a good solution!

So, this rant is just that, a rant. It's an emotive, unsubstantiated, misleading, and plain wrong vent.

It is nice though that it is labeled as being a rant. That is what makes it 'OK' in my eyes. It means I can just skip it and ignore it.... which I did, when I first read that answer. It is only because of this meta post that I am looking again....

I have learned over the years to identify these types of 'contributions' from enthusiastic but misguided people (everything from 'fanboys' to the more nefarious 'shills'). My pragmatic nature means I use the right tools for the job, and adapt over time. I am not influenced by sweeping generalisations and flowery hyperbole (rather, I hope I am not swayed by it, and I think I can identify it, most of the time).

In general, when I identify such language and 'persuasions' from people, I reduce the weight I give to the value of their other contributions as well. I know I am not the only person who does that too.

So, the 'lesson' I have learned, is 'do your own research', make 'value-based' decisions, accept when you are wrong, and adapt over time. Also, don't make sweeping generalisations, be prepared to back up your opinions with experience or fact, and always consider your audience when you speak/type. Be prepared to say 'I don't know' is another lesson worth knowing.

What would I have said?

Silverlight is a system that appears to be reaching it's end of life, and it is limited in the platforms that support it. For the medium-term, you should consider an alternative like HTML5 which Microsoft says they are committing to, and are recommending for future work and even have a site dedicated to promoting it. WebGL is an emerging API that allows you to accelerate your web applications by using the power of the GPU. Although its support is not universal yet, you should look into it.

\$\endgroup\$
  • 4
    \$\begingroup\$ what a meta-rant. on meta.. um. so it's in fact a meta meta-rant? I think I should stop thinking about this right here... \$\endgroup\$ – Vogel612 Jul 23 '14 at 15:24
  • 1
    \$\begingroup\$ "Not only what we say, but how we say it, is important". I believe the "What would I have said?"-part is an excellent example for how to say what should be said in a much better way. Excellent post, rolfl! \$\endgroup\$ – Simon Forsberg Jul 23 '14 at 16:09
  • \$\begingroup\$ By generalizing / exaggerating a very well known topic, one can communicate better with people who look at the big picture. Big Picture: Compared to what Microsoft expected Silverlight to be and do, Silverlight was a flop. Big Picture: If Microsoft continues to refuse to support the world's innovation and consensus in Internet Explorer, it won't be used by 50% of the web much longer. Sure, it was an exaggerated generalization. But I didn't think it would be depicted under a microscope. Just rather: Yep, Microsoft tends to do that.. \$\endgroup\$ – Viziionary Jul 26 '14 at 18:50
  • 3
    \$\begingroup\$ However, I'll learn from this a bit, and provide more fact and less twist in my often exaggerated manner of speaking, whilst here. \$\endgroup\$ – Viziionary Jul 26 '14 at 18:53
9
\$\begingroup\$

I think rants are a valid and important part of CR-Culture. I have seen rants in answers from every single of the 5-10 top answerers here, and I feel that these are sometimes what makes a CR answer enjoyable to read.

They provide useful information in a mostly humoristic way, well at least standing as an outsider.

I also found rants a good way to cool my head a little when I wrote myself into rage while writing my answer. Especially a ;) or </rant> at the end of such passages gives them a humoristic touch IMO.

One should exercise care though, before going on a rant, one should be fully confident in what one says. I made that mistake already, and it wasn't pretty and nice for me...

\$\endgroup\$
5
\$\begingroup\$

Rants are fine as long as the user is addressing the actual question.

In the example provided, the 'rant' is not addressing the question. The user does go on to address the question, but the rant is given pride of place when it should be a footnote as it is for the most part not directly addressing to the user's question.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .