[j-nsp] MX104 capabilities question
Gavin Henry
ghenry at suretec.co.uk
Thu Jul 7 06:22:50 EDT 2016
On 7 July 2016 at 08:33, Saku Ytti <saku at ytti.fi> wrote:
> On 7 July 2016 at 04:21, Gavin Henry <ghenry at suretec.co.uk> wrote:
>
> Hey,
>
>>> This comment was specifically about how they write the software. I
>>> don't believe market has enough skilled labour to write any
>>> significant SLOC on C. I think use of C puts any company in
>>> disadvantage due to the cost of introducing bugs.
>>>
>> That last sentence is quite a sweeping statement about C.
>
> I accept that it is controversial. But it should be uncontroversial to
> state, that some languages make more compile-time promises of
> correctness than C does.
True. My point was "I think use of C puts any company in disadvantage
due to the cost of introducing bugs."
Any developer can introduce bugs irrelevant of the language but some
languages just have bugs that you
would need to know C to fix. At Arista's level they are using C as
everything touches C at some point be it
bootstrapping the mini-any-lang to get to the state of compiling a
language implementation from source.
I would say using C in the right place within a company puts them at a
*massive* advantage.
Some interesting reading:
https://ca.linkedin.com/jobs/view/17353638
http://blog.tsunanet.net/2013/03/why-i-joined-arista-networks.html
http://www.bctechnology.com/jobs/Arista-Networks/106315/Software-Engineers-(multiple-positions).cfm
>> There are massive Linux Kernel Hackers of course, which of course uses C.
>
> Kernel is one of the very few things you have to write in language
> like C, C++ or Rust. I suspect many of top class Linux hackers can't
> be hired to write RPD or iosd. Given environment, which you view as
> broken, but not being allowed to fix it may not be acceptable to
> people who are passionate about their work.
Again, very true. Further proof that the language is irrelevant and
the "right tool for the job". The issue being
algorithms, architecture of said toolset/project need to be understood
clearly. The language is the second bit.
Is that level still being taught or is it learned on the job?
>>> Combine these, and I think it makes Arista fundamentally more able to
>>> produce better software.
>>
>> You can make great software in any language. I think this argument is false.
>
> I'm not argumenting it's impossible to make great software in any
> language, I'm argumenting different languages give you different
> probability of ending up with good software. Mainly because C makes
> very few compile time guarantees, it's powerful tool, but it's also
> very easy to write bad, yet seemingly working code on it.
I'm sorry, I just don't agree. Ending up with good software comes down
to design, understanding,
maintaining and testing (not in that order). The choice of language
makes no difference. Yes,
you may get to the "good software" position sooner using a certain
language, but just because something
is hard, doesn't mean it shouldn't be done. Just look at Arista.
"it's powerful tool, but it's also very easy to write bad, yet
seemingly working code on it."
Test, test and test as you know. It's very easy to write crap code,
full stop :-)
> I don't think market has sufficient amount of economically viable
> people who can produce good C code. So my argument is, by generating
> lot of code and by using C++, it is fundamentally cheaper for Arista
> to produce quality code, giving them competitive advantage.
There in lies the whole point which I do agree with. Finding good or
great C programmers is hard. Lots of C++.
I've found that out this month myself. I did C at Uni 15 years ago and
just finished a 16 week C course here:
http://www.cs.manchester.ac.uk/study/professional-development/study-options/distance-learning/foundation/course-modules/programming-in-c/
C is my world as everything we use (SureVoIP and Suretec) is written
in it, even other languages we use are initially written in C. I've
tried to find a Masters in Software Engineering with a strong emphasis
in C in the UK, but they all use Java but you can use C for you
dissertation. I've joined professional commercial groups like ACCU
(http://accu.org/) but everyone is doing C++. I have found some
mentoring programs though. The MSc is not needed for my job though.
Anyway, my final point is as generations move on, tough things that we
all rely on are getting left behind because there's a quicker way to
do it. Problems solved and solutions get re-invented as they aren't
taught anymore. But we all know that as human beings. Doing something
the hard way that takes longer is not always doing it badly.
--
Kind Regards,
Gavin Henry.
More information about the juniper-nsp
mailing list