ADA比C ++更难学习 [英] is ADA harder to learn than C++

查看:85
本文介绍了ADA比C ++更难学习的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开始学习C ++但是最近引起我注意的是另一种语言,那就是ADA编程语言,这是NASA和军用计算机中使用的实时语言,对任何知道这两种语言的人来说都是个问题。 C ++和ADA,是ADA更难学,难道真的很难吗?因为我从它的伟大应用程序中假设它更难学习



以及你推荐为ADA阅读哪些书?

Hi, I'm starting to learn C++ but there is another language that recently caught my attention, and that is ADA programming language, a real-time language used in NASA and military computers, just a question to anyone who knows both C++ and ADA, is ADA more difficult to learn, is it really hard? because i assume from it's great application that it's harder to learn

and what books you recommend to read for ADA?

推荐答案

我非常感谢Narain Gehani对软件开发的深入,全面的了解作为人类创造活动的类型,精彩的思想和所描述的所有技术和特征的令人信服的动机。而且,他的书不只是关于语言;它们为通用计算机科学的一些重要部分提供了很好的途径,特别是并行性。



我不能给你准确的参考资料,请自己找出答案。这些书很容易在网上找到,但我不确定你是否能找到任何电子形式的东西。



更难学的是无效的题。我会说,Ada比C ++更难,而C ++比Ada更难。学习的硬度并不是真正有效或必要的标准。通常,更难学习意味着更容易的工作。从我的Ada背景来看,我得出的结论是C ++是错误的,但我不能说Ada是完美的。不过,我很抱歉它已经不再流通了。即使您无法使用Ada,它也可以帮助您开发非常高效的通用计算视图。 Ada的想法和方法极大地影响了Object Pascal及其后代C#,尽管它具有类似C ++的语法,它不应该让你误以为C#是从C ++派生出来的;它从Ada得到的东西远远多于C ++。



-SA
I really appreciated the books by Narain Gehani for depth, thorough understanding of software development as the type of human creative activity, brilliant thoughts and convincing motivations of all the techniques and features described. Also, his books are not just about the language; they provide excellent pathways to some important parts of general computer science, especially parallelism.

I cannot give you exact references, please find out yourself. The books can easily be found on the Web, but I'm not sure if you can find anything in electronic form.

What is harder to learn is not a valid question. I would say, Ada is harder then C++ and C++ is harder then Ada. Hardness in learning is not really the valid or essential criterion. Often, harder learning means easier work. From my Ada background, I made a conclusion that C++ is wrong thing, but I cannot say that Ada is perfect. Still, I'm sorry that it kind of went out of circulation. Even if you won't be able to use Ada, it can help you to develop very productive views on general computing. Ada ideas and approaches greatly influenced Object Pascal and hence its descendant C#, despite its C++-like syntax, which should not fool you into thinking that C# is derived from C++; it got a lot more from Ada than from C++.

—SA


你将学习您职业生涯中的几种计算机语言。

无论语法是什么,您都应该尝试使用计算机语言所涵盖的概念。



人迹罕至的路径可能是学习某种程序概念。

然后继续讨论基于对象/面向对象的概念。

也许是一些元编程概念。



或者,函数式编程概念可能会开辟一种全新的思维方式。



取决于抽象级别你最热衷于,你甚至可以从汇编语言水平开始,获得CPU和微控制器片上系统的概念。



你将不得不处理(非)确定性,同时执行(使用排序和同步概念),资源管理(例如记忆人员)年龄:完全由用户控制与垃圾收集等等。



我建议你学习一种语言,你今天在社区中得到的支持最多,而且很多材料都是可用。但不幸的是,ADA可能不是其中之一。



最后,学习计算机语言(及其概念)的难点在于不断运用话题。为了精通,您可能需要投入大约10000小时的时间来接触材料。通过这种曝光,您可以混合和匹配变体,并生成高质量,可维护和简洁的代码。



除了语言概念,您很可能需要学习如何使代码可测试并熟悉测试概念(并找到以给定语言实现这些概念的方法)。



所以,采取你喜欢的任何语言,继续用它做你的第一步。始终注意背后的概念,不要被语言的细节和语法的细节分散注意力。请记住:它不会是您学习的最后一种语言。



干杯

Andi
You will learn several computer languages in your career.
No matter what the syntax is, you should try to get the concepts the computer languages cover.

The beaten path would probably be to learn some kind of procedural concepts.
Then go on to object based/object oriented concepts.
Maybe some meta programming concepts.

Alternatively, functional programming concepts might open up a fully new way of thinking.

Depending on the level of abstraction you are most enthusiastic for, you might even start on assembly language level and getting the concepts of a CPU and System-On-A-Chip of micro controllers.

You will have to deal with (non)determinisms, with concurrent execution (with sequencing and synchronization concepts), with resource management (e.g. memory management: fully user controlled versus garbage collected), etc.

I suggest to learn a language where you get most support in the community today and where a lot of material is available. ADA might (unfortunately) not be one of them, though.

In the end, the hard thing about learning computer languages (and their concepts) is to constantly exercise the topic. To become proficient, you might need to invest some 10000 hours exposure to the material. With this exposure, you are ready to mix and match variants and produce high quality, maintainable and concise code.

Beside the language concepts, you most likely need to learn how to make code testable and to get acquainted with testing concepts (and find ways to implement these in the given language).

So, take any language you like, go on with it and do your first steps. Always look out for the concepts behind and do not get distracted by the details of the syntax and the grammar of the language. Remember: it won't be the last language you learn.

Cheers
Andi


这篇关于ADA比C ++更难学习的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆