TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

What languages changed the way you think about programming?

14 点作者 jfe大约 10 年前
"A language that doesn't affect the way you think about programming, is not worth knowing." - Alan Perlis

22 条评论

wglb大约 10 年前
Fortran II, which was my first language. Learned it in Union Station in Chicago, waiting for the train back to Montana at Christmas break in my Freshman year.<p>XPL, after my very contentious relationship with Fortran II developed, changed not only my thinking about programming, but pushed me into a career in Compilers.<p>Then Lisp, after a 40 year interval (introduced in a &quot;survey&quot; class in my senior year at NWU), came into full bloom as my tool for most everything these days.<p>And RPG III for a reflection on its ancestry of Plugboard machines (not meant in a disparaging way). But the truth is that was likely the only way that I would have come to appreciate COBOL.<p>Bliss 36 as a precursor, of sorts, to C, on a high-level language used to write said compiler in.<p>I had a rather ho-hum reaction to C, as all the work in in the Sigma5&#x2F;RBM interrupt-rich environment made it hard to accept the compromises that were, and are, C.<p>But C was a lesson in engineering to me. Engineering, in my simple country boy definition, is finding the solution to a problem with 5 mutually exclusive constraints. Studying C carefully shows you those. Unless you have designed a language, you may not have access to the full appreciation of it.<p>Syclops (yes, that is the spelling--the company was named Sycor), the language that three of us designed and built a compiler for back in the 1970s. It was a very simple language, in the spirit of PL&#x2F;M, but it was a lesson in the combinatorial potential lurking behind even a very simple language. Three of us were a bit clueless that you couldn&#x27;t build a compiler in a year, but we ended up doing it. And one of us was a student of Ullman; wrote a paper on a particular aspect of error recovery for LALR parser. Targeting the 8085, no less.<p>The PDP-10 assembler language for unmatched beauty and power in an assembler. 8086 is not very pretty in comparison.<p>Smalltalk, which taught me that with a good development environment, you can feel drained after putting in 8 hours of programming, because you are not waiting around for any compile, ever. And that OO programming in other languages (C++, I am looking at you) is but a pale imitation.<p>Oh, and Forth, for a way to build astonishingly complex behavior with extremely simple hardware.<p>Edit--typos
ggchappell大约 10 年前
A few highlights spanning multiple decades, in chronological order:<p>C - The concept of a memory address as a manipulatable <i>thing</i> is a powerful one (and, yes, also a dangerous one).<p>Forth - Composable components are a great way to build systems.<p>Perl[+Shell] - Write little programs that muck about with text, and then link them up. High-level abstractions (associative data, regular expressions, etc.) can be practical things, not merely pipe dreams that exist only in textbooks on data structures &amp; algorithms.<p>C++ - Strong support for abstraction makes one rethink a lot of things.<p>Python - <i>Everything</i> can be a little blob with attributes I can mess with. Comprehensions are awesome. (And a PL at about the same level of abstraction as Perl can still feel sane.)<p>Haskell - Type systems can be helpful. Mutable data is bothersome. Tossing around functions is great. Syntax can be simple without being confining (lookin&#x27; at you, Forth). Recursion + TCO is a Good Thing (lookin&#x27; at you, Python).<p>----<p>If I had to pick just one, it would be Haskell.
siddboots大约 10 年前
SQL.<p>I had already done some Prolog in CS class, and I thought that I knew what it was all about. Writing thousands of queries as a data analyst made me really think about how to reason logically and constructively. I&#x27;m still often surprised just how much can be accomplished with a query engine alone.<p>People talk about logic programming as if it has fallen from grace and will never be able to deliver on its promise, but I&#x27;m convinced it is yet to make its biggest impact.
srirangr大约 10 年前
Python - The first time I realised how small and simple instructions can get the desired output.<p>JavaScript - Being a multi-paradigm language, it helped me in understanding different paradigms of programming language.
brudgers大约 10 年前
Ken Iverson&#x27;s J.<p>And runs on Android.<p><a href="http:&#x2F;&#x2F;www.Jsoftware.com" rel="nofollow">http:&#x2F;&#x2F;www.Jsoftware.com</a>
JoachimS大约 10 年前
ML (the functional language) after 10 years with only assembler. It was a bit of a leap. ;-)
timClicks大约 10 年前
Erlang - I seem to try to emulate isolated processes everywhere now
Johnny_Brahms大约 10 年前
You learn something from all languages . some languages however changed how I program. Forth(or more specifically, factor) and scheme changed the way I wrote programmes.<p>Factor and racket&#x2F;ironscheme are my go to languages for my own projects for a long time. I wish I was smart enough to do APL stuff, but my programmes are generally not the ones that would benefit from the strengths of APL.
raffy大约 10 年前
Mathematica greatly expanded the space of things I can efficiently prototype. It&#x27;s my starting point for almost any problem. If you find yourself saying &quot;I don&#x27;t want to waste my time coding that&quot; or you resort to gut-feelings when data is available, Mathematica is an awesome tool to have in your problem-solving toolkit.
bozoUser大约 10 年前
Scala - wiring the concepts of immutablity and stateless functions and the power it gives the programmers is astonishing.
评论 #9433838 未加载
bandrami大约 10 年前
Well, my first languages were Forth and Logo, back in 1983. So when I was introduced to Basic 5 years later I thought &quot;what the #$&amp;@ is this crap?&quot;. Since then, Joy and Dylan really made me re-think things. As did Mixal.
jquast大约 10 年前
C.<p>After I wrote a scripting language in C from out of a book, errors from all other programming languages themselves written in C (Java, python, ruby, tcl, perl, php, etc.) made perfect sense, especially in regards to tokens and AST&#x27;s.
convivialdingo大约 10 年前
In all honesty, assembler.<p>The downside is that I now see high-level languages as they really are. Some languages are really beautiful, but many are just mind tricks and special calling conventions.
M8大约 10 年前
C#, F#, JavaScript (by just how bad it is), SQL, Erlang
pcunite大约 10 年前
Delphi (Object Pascal) was my first real ah-ha moment.
moru0011大约 10 年前
smalltalk
zen3d大约 10 年前
Scheme and SICP
srinivas1990大约 10 年前
Java, I can build web and desktop applications and it is suitable for research based applications also. lot of libraries available in java
AnimalMuppet大约 10 年前
Perl. No, really. Hear me out.<p>&quot;Read in a line. If it ends in a newline, remove it.&quot; We (humans) talk to each other that way. We use words like &quot;it&quot;. But we can&#x27;t talk to the computer like that. &quot;Read in a line <i>from where</i>? Put it where? If it ends in a newline? If <i>what</i> ends in a newline?&quot;<p>But in Perl, you can say &quot;read in a line&quot;, and it means &quot;read it from the standard place, since I didn&#x27;t specify, and put it in the default variable, since I didn&#x27;t specify that either&quot;. And &quot;if it ends in a newline&quot;? Well, since I didn&#x27;t specify, that means &quot;if the default variable ends in a newline&quot;.<p>This &quot;natural language-like&quot; approach to Perl is, I think, one of the really interesting ideas in programming. It shows that Larry Wall came from a linguistic background. (Note well: When I say &quot;natural language-like&quot;, I am <i>not</i> referring to Perl&#x27;s syntax!)<p>Other things I find really interesting:<p>C++: RAII.<p>Java: reflection.<p>Lisp: macros.<p>Haskell: the type system.
jdeisenberg大约 10 年前
Erlang
ksherlock大约 10 年前
erlang, k.<p>(Intentionally excluding languages I use on a more frequent basis.)
elinchrome大约 10 年前
ruby and angular
评论 #9434333 未加载