You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-9Lines changed: 11 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -13,30 +13,32 @@ There are a few style rules that are unique to this project:
13
13
14
14
- The first rule is that the code should correspond directly to the pseudocode in the book. When possible this will be almost one-to-one, just allowing for the syntactic differences between Python and pseudocode, and for different library functions.
15
15
- Don't make a function more complicated than the pseudocode in the book, even if the complication would add a nice feature, or give an efficiency gain. Instead, remain faithful to the pseudocode, and if you must, add a new function (not in the book) with the added feature.
16
-
- I use functional programming in many cases, but not exclusively; let the book's pseudocode be the guide. In general, pure functions (with no side effects) are prefered, but functions with side effects, and classes, can be used where appropriate.
16
+
- I use functional programming (functions with no side effects) in many cases, but not exclusively (sometimes classes and/or functions with side effects are used). Let the book's pseudocode be the guide.
17
17
18
-
Beyond the above rules, we default to[Pep 8](https://www.python.org/dev/peps/pep-0008), with a few minor exceptions:
18
+
Beyond the above rules, we use[Pep 8](https://www.python.org/dev/peps/pep-0008), with a few minor exceptions:
19
19
20
20
- I'm not too worried about an occasional line longer than 79 characters.
21
21
- You don't need two spaces after a sentence-ending period.
22
22
- Strunk and White is [not a good guide for English](http://chronicle.com/article/50-Years-of-Stupid-Grammar/25497).
23
23
- I prefer more concise docstrings; I don't follow [Pep 257](https://www.python.org/dev/peps/pep-0257/).
24
24
- Not all constants have to be UPPERCASE.
25
25
-[Pep 484](https://www.python.org/dev/peps/pep-0484/) type annotations are allowed but not required. If your
26
-
parameter name is already suggestive of the name of a type, you don't need an annotation, e.g.:
26
+
parameter name is already suggestive of the name of a type, such as `url` below, then i don't think the type annotation is useful.
27
+
Return type annotations, such as `-> None` below, can be very useful.
27
28
28
-
def retry(url: Url) -> None: # This 'Url' annotation should be avoided; but '-> None' is useful
29
+
def retry(url: Url) -> None:
29
30
30
-
# Language Popularity
31
+
# Language Choice
31
32
32
-
Are we right to concentrate on Java and Python versions of the code?
33
-
What languages do students already know? The [TIOBE Index](http://www.tiobe.com/tiobe_index) says the top five are:
33
+
Are we right to concentrate on Java and Python versions of the code? I think so; both languages are popular; Java is
34
+
fast enough for our purposes, and has reasonable type declarations (but can be verbose); Python is popular and has a very direct mapping to the pseudocode in the book (ut lacks type declarations and can be solw). The [TIOBE Index](http://www.tiobe.com/tiobe_index) says the top five most popular languages are:
34
35
35
36
Java, C, C++, C#, Python
36
37
38
+
So it might be reasonable to also support C++/C# at some point in the future. It might also be reasonable to support a language that combines the terse readability of Python with the type safety and speed of Java; perhaps Go or Julia. And finally, Javascript is the language of the browser; it would be nice to have code that runs in the browser, in Javascript or a variant such as Typescript.
39
+
37
40
What languages are instructors recommending for their AI class?
38
-
To get an approximate
39
-
idea, I gave the query <tt>norvig russell "Modern Approach"</tt> along with
41
+
To get an approximate idea, I gave the query <tt>norvig russell "Modern Approach"</tt> along with
40
42
the names of various languages and looked at the estimated counts of results on
41
43
various dates. However, I don't have much confidence in these figures...
0 commit comments