当前位置:  开发笔记 > 编程语言 > 正文

C++程序员希望拓宽视野

如何解决《C++程序员希望拓宽视野》经验,为你挑选了6个好方法。

我已经编程了大约5年的C++,现在我意识到知道如何"以不同方式"思考的价值.

这个问题适用于尝试过其他编程语言的C++程序员,他们遇到过以下问题:

"喔..这太酷了!我不知道我可以像这样编程."

"哇,我从没想过设计问题可以这样解决!"

那么,哪种语言对你有用?我正在寻找最大的效果,所以我认为Java不符合要求.= p我对任何建议持开放态度!

免责声明:我问这个问题主要是因为我想扩大自己的想法.这里无意开始任何编程语言战争!



1> cdiggins..:

我可能很自信,主要是C++程序员,因为我已经使用了它,所以你可能会发现我的经历很有趣.

按时间顺序,这里是我学到的语言和我的顿悟.我已经为我强调了重要的一些.当然,有许多不同的语言可以提供相同的见解,我只是分享我自己的个人经历.

    Atari Basic - 酷我可以让我的电脑几乎做任何事情,但我一直跑到我的8k内存限制(或者我用完了行号)!

    徽标 - 没有行号.我可以逐步构建和运行我的程序(后来我在Lisp,Scheme和Forth中看到了这个)

    Pascal - 它就像Basic一样,但具有更多功能(并且没有行号).

    C - 这就是指针(现在我理解偷看和戳).

    装配 - 啊,这就是为什么C的设计方式.我不妨用C而不是汇编.

    C++ - 对象是将程序结构化为逻辑块的好方法

    BASH - 使用流(过滤器,源和接收器)进行编程非常强大

    PostScript - 字体是程序!基于堆栈的编程是一种非常强大的范例.

    Prolog - 所以你可以写一堆约束,让计算机自己解决问题.但是,天哪,很难知道有什么限制让它做我想做的事!

    Perl - 如果人们不了解所有规则并不重要.我想有些语言的设计比阅读更容易.

    SQL - 查询数据的简便方法.它让我想起了Prolog.(后来它让我想起了函数式编程).

    Lisp - 所以你不需要手动内存管理来制作链表!(注意我没有在Lisp上花足够的时间.很多后来的课程都可以用它来学习.)

    Object Pascal - Cool,Pascal也可以有对象.

    Modula-2 - 奇怪,这看起来像Pascal.

    Simula-67 - 嗯......所以这就是面向对象语言的来源?

    Java - 一切都可以成为一个对象(我后来才知道更多的东西可以是对象,参见下面的Smalltalk),代码可以编译一次并在不同的平台上运行.我的其他顿悟是接口是构建软件的好方法,垃圾收集真的很强大.

    Delphi - 哇,GUI库可以很容易使用.事件是一个很棒的抽象.

    C++模板 - 在编译时编写代码非常强大(参见Scheme和Lisp).

    C++仿函数和绑定器 - 将函数传递给函数功能强大,但语法很糟糕.(这实际上是我对函数式编程的第一次真实体验,大多数语言显然做得更好).

    JavaScript - Prototypes和eval函数非常强大.

    XSLT - 我无法相信这是图灵的完整.这必须是学术界变坏的时候发生的事情.

    Eiffel - 合同是表达设计假设和要求的好方法.

    AspectJ - 横切关注点非常有意义,而且在其他OOPL中很难表达它们.但是通过函数的名称识别它们看起来像是一个黑客?

    Scala - 字段和方法是相同的.高阶函数可以很容易编写.编译器可以猜测简单表达式的类型(但不是模板).对象代码可以更简单.模式匹配很整洁,但我什么时候使用它们?特征和混合甚至比界面更好.

    C# - 这就像Delphi与C++和Scala混合使用.我可以在运行时反映一切,甚至可以轻松地发出代码.

    D - 这就是将单元测试与按合同设计和其他一些东西结合起来,同时保持C++心态的结果.

    Smalltalk - 没有真正学到它,但是Smalltalk程序员在这个时候向我指出,在Smalltalk中,一切都是一个对象(没有必要的装箱/拆箱),包括代码块.

    LINQ - SQL基本上只是函数式编程.

    Lua - 一切都可以成为一张桌子!听起来像JavaScript,但它更容易嵌入.

    ML - 当你只使用模式时,你可以编写很多简单的代码.

    Lambda演算 - 所以这就是Lisp和函数式编程的来源.

    Scheme - 在编译时生成代码非常简单.这很容易扩展.数字处理可以做得很好.保持状态的功能很强大.延续很整洁,但我不在乎.

    Frink - 我从未意识到测量单位可能如此复杂.

    欢乐 - 这是我见过的最短的代码.这是那里评价最低的语言.

    组合逻辑(SKI-Calculus) - 您不需要参数,但可以使用组合器.对Joy来说,Lambda-calculus是Lisp.

    Haskell - 我希望我可以编译我的代码.Haskell标准的前奏,必须是我见过的最优雅的库之一.

    因素 - 那里有很多很酷的东西,我只是希望我能够学习语法.

    K - 基于数组(矢量)的基元操作非常强大.

    第四 - 这就像一个超级动力的高级装配.但是要学到很多东西.

    Python - 这是非常易读的东西.它就像一堆其他语言的组合.

    Erlang - 将程序表达为actor是表达并行性的好方法.

    可执行的UML - 异步消息传递是表达并发算法的好方法,无需考虑线程.

    Ruby - 构建系统(Rake)可以用真正的编程语言编写.代码块也可以是数据(技术上我通过Scala了解到).

所以当然这个列表比你(或任何其他人)想要的要长得多.为了达到最大效果,我的短名单将是:Scheme(或Lisp),Joy(或PostScript),Erlang,Eiffel,AspectJ,Erlang,ML和Haskell.如果你只想专注于几种语言,并且愿意深入研究它们,那么你可以从掌握Scala或C#中获得很多.当然可能还有一两件事你可以从C++ 0x中学习,特别是如果你推动并刺激它.



2> Stephen Doyl..:

Python给了我"如此酷"的反应



3> Eli Bendersk..:

对于真正不同的东西,请尝试Lisp或Scheme.


+1我同意.一旦我学会了Scheme,STL中的很多东西开始对我有意义.学习任何函数式语言肯定会让你成为更好的C++程序员.

4> John Weldon..:

当然是Haskell,但实际上所有这些都改变了我的观点:

我小时候就开始在GWBasic工作,所以我很自然地倾向于程序语言.

我的职业生涯始于C++,这是我建立的基础.

JavaScript - 向我介绍了一流的函数,闭包,动态类型.

Python - 向我介绍了更简单的语法和动态语言.

SQL - 向我介绍了'是'与'做'的语言,代码'是'答案.

Lua - 极简主义并使用简单的数据结构(表)作为所有数据结构的基础.

C#是我的新面包和黄油......垃圾收集的优点,内置于库中等.

C - 我有力量!



5> itowlson..:

我将推出第二个Lisp/Scheme,并建议将Haskell作为一种能够挑战编程方式的语言.O'Reilly的书"真实世界Haskell"是一个实用的介绍,用具体的用例很好地说明.



6> goldPseudo..:

整个"哇哇......这太酷了!我不知道我可以像那样编程." 当我第一次学习函数式编程时,我得到了启示.在我的例子中,这是通过我在Tcl/Tk中的研究得出的,这是多范式的,但我想你可以从任何强函数语言(例如Lisp或Scheme)获得相同的效果.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有