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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Flow Charts

61 点作者 gaika大约 12 年前

18 条评论

rodw大约 12 年前
I wouldn't say I use them often (and when I do, it's usually some form of business process modeling rather than software control flow) but I don't think it's quite fair to assert that flowcharts became obsolete with punch-cards.<p>At they very least they are a useful "language" to describe program-like logic to non-programmers. That includes beginner programmers, as others have noted, but also includes interested non-technical parties. In my experience it is the best way to explain/document convoluted decision trees to non-programmers.<p>More broadly, I hear a lot of complaints about UML and other diagrammatic ways to design or describe programs. I don't really get it. I mean, I understand why one might think that the formal UML language is complicated and convoluted (because it is that) and why one might think it fails to live up to the promise of a visual way to specify/write software (because it does fail to do that), but surely I'm not the only one who just drops most of the formalism and uses a pseudo-UML format to communicate (and sometimes even reason about) software design? How do you sketch programs without some UML-like notation? (I suspect UML was partially a formalization of existing ways to sketch programs to begin with.)
onemorepassword大约 12 年前
Funny, the more my job involves explaining to developers what is needed rather than coding it myself, the more I tend to fall back on flowcharts and diagrams to describe the higher level business processes.<p>I'm all in favor of agile direct communication with the client, but one decent flowchart can save spending hours in meetings trying to get everyone to understand what the problem is we need to solve.<p>Although no longer needed to design every little detail of the code flow, it's still pretty much an essential skill to have in software development.
评论 #5270812 未加载
michaelgrafl大约 12 年前
Slightly off-topic, but I remember doing flow charts in college back in 2008. I hated it. Everyone hated it. It was boring, awkward, and confusing, especially for those of my classmates who had never written actual code before.<p>The assignment was to break down everyday activities (e.g. brushing your teeth) into atomic steps, and have conditionals and loops in there. Not only was it unclear how granular the steps were supposed to be, but I also thought that this is probably the lamest, most uncool way to introduce someone to programming.<p>At another college they used Scratch for that, which was a whole lot more fun, because it makes it easy to avoid syntax errors, draw graphics, get instant feedback, and have a nice visualization of the program flow/structure.<p>And those god-damn Nassi–Shneiderman diagrams. Ugh.
ndefinite大约 12 年前
"But what will most certainly be forgotten is there was a generation of students in the 1980s and 1990s who were encouraged to use flow charts, long after the reason for using them had disappeared."<p>I don't know if I entirely agree with his conclusion. The smartest people I know code with a pen and paper. When they're on the bus or subway. When relaxing, or thinking carefully while away from a computer.<p>Those who program in the shower and then write it down after before they forget. Analogue programming tools (pan/paper) are great tools.<p>I thought the article was going to end with him pointing out that he found a great practice that we can all benefit from now. Planning code ahead of time is still better than typing away, we're just not forced to do it anymore.
danso大约 12 年前
Amusing that this takes place in Saigon. My mom is from there and her knowledge of COBOL is why she still has a programming job today
评论 #5269453 未加载
cpressey大约 12 年前
Lest we forget "computer" and "compiler" were once job descriptions, and (if I'm not mistaken) the "coder" was the person who punched the cards while the "programmer" was the person who fed those cards into the card reader. Timesharing systems and teletypes changed everything.<p>Software developers often talk about how automation changes peoples' lives but sometimes forget how much of their own industry was disrupted by automation.
williamsdb大约 12 年前
Not sure why the use of COBOL is written in the past tense given that it is still widely used.<p>I cut my teeth on both COBOL and flowcharts and still find the latter immensely useful for working out logical flows in my code.<p>Much better to work out the foundations before cutting the code. Leads to higher quality in my opinion.
DanBC大约 12 年前
The classes were for beginner programmers. It's a good idea for them to sketch out a rough idea of their program before they start coding so they can get clear in their head things like what loops to use.<p>Note that I suggest an informal sketch, rather than strict flowcharts with definitions for each box shape etc.<p>There are other paper-planning tools too. Jackson Structured Programming is one. (<a href="https://en.wikipedia.org/wiki/Jackson_structured_programming" rel="nofollow">https://en.wikipedia.org/wiki/Jackson_structured_programming</a>)<p>I'd be interested to know if new programmers would still find this kind of thing useful, or if it's just confusing?
carlob大约 12 年前
I think that there is still value in teaching flow charts to beginner coders. It'll get you used to pen and paper reasoning and they are very conductive to better design and architecture, when done at a higher level.
sumit_psp大约 12 年前
As a kid, flow charts were a good way to 'write' a program without having to learn a language. Also flowcharts were a nice precursor to FSM diagrams.
bdunbar大约 12 年前
FTA "COBOL code was written on paper, sent to a punch operator, who would type the punch cards"<p>Nitpick. When I learned COBOL in 1990 we had terminals, typed the code like gentlemen.<p>What they taught us was 1) flowchart the process 2) write it out by hand on graph paper 3) type it up.<p>I still use flowcharts. Not all the time, and not well: that kind of thing works much better on fan-fold paper!<p>But it helps me keep the logic I had in mind as I bang out code.
gruseom大约 12 年前
Those are great pictures, but the claim that drawing flow charts saved time in the punch card era doesn't make sense to me. My bet is that, then as now, good programmers soon discovered that they were a waste, favored only by textbook writers and managers. They are a non-programmer's idea of what a program ought to look like. There have always been far more powerful tools to work with in the absence of a keyboard, like pencil and paper—not to mention just plain thinking.<p>There are many programmers around who worked with punch cards. I have often heard them emphasize how important it was to get your program right the first time, because compile time was so lengthy and scarce. But I've never heard one say "that's why it was important to draw a flow chart first". If they had, I'd remember; it would have been such a surprise!<p>Some HNers must have been programming in those days. I'd like to hear from them about this.
jacques_chester大约 12 年前
I recently read Weinberg's <i>Psychology of Computer Programming</i>, which was written at about the time that time-sharing operating systems (like Unix) began to push out batch computing systems. This is exactly the sort of thing he was concerned about.<p>When you have a long turnaround time for feedback, you get a strong incentive to "desk check" before you send off your work.
adulau大约 12 年前
If you cannot describe your algorithm on a paper... it will be difficult to debug this code afterwards.
fnordfnordfnord大约 12 年前
Thanks for posting this. It always puzzled me when I was in college; what was the usefulness of flow charts. Instructors seemed unnaturally fixated on them. Now that I am an instructor, I occasionally find them useful on the whiteboard, but that's about it.
raintrees大约 12 年前
I still have my flowchart stencils and a couple of pads of gridded report and display paper from my COBOL classes... I need to clean my office.
afandian大约 12 年前
Interesting to see crossed Øs rather than zeroes.
Jam0864大约 12 年前
Hopefully this one day becomes the case with UML.