-
-
Notifications
You must be signed in to change notification settings - Fork 606
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cyrillic С looks odd #155
Comments
|
This change was at the request of fellow Cyrillic users in #22 |
|
[updated description] |
|
I'm Russian and this kind of "C" hurts my eyes. I asked around people at my office and they have the same opinion. I understand the point of distinguishing Latin and non-Latin "C" letters. But text looks like a foreing language text with "C" from v2.018. For me Hack is not usable with it. |
|
Well, this is just ugly. I certainly see little point in creating separate look and feel for cyrillic glyphs. |
|
From #22 discussion: We have been closely following your conversation here and I think that we will be able to address both ends of this spectrum at some stage. There is not presently a plan to remove the distinct lowercase For those who prefer to view the Latin Our intermediate term plan is to release a tool that will allow you to replace any glyph in the set with alternates or add new glyphs to the set. This is something that we have been discussing for the last several weeks and it is in the planning stage at this point. This will be our solution to the lack of OpenType feature support for alternate glyphs in most source code text editors and the plan is to create an automated approach outside of font editors to make these changes. The current plan includes an associated repository of alternate glyphs that are developed by the project team and user contributions. For those who do not use the font editor approach above and prefer the Latin lowercase c style, please check back in the next few months as we will be interested in your thoughts about the utility of this tool. |
|
@achkasov Thanks for this suggestion! This was something that was proposed in #22 as well. The problem is that our target type size range includes small sizes. A subtle change like the one you propose will not be apparent at these sizes and will result in the original problem that this change was intended to address. Other shapes that would work and that will display at small text sizes? We are confined to the pixel grid on the screen. Interested in your thoughts. |
|
Why do this at all? I can think of only around 5 upper-case glyphs and 2 lower-case ones. You usually do not mix latin and cyrillic in the same place, so it it pretty much easy to notice if wrong input method is selected. |
|
@vladimir-novoseltsev please see the discussion in #22 |
|
I've seen it and I do not agree with original issue. Yes mixing latin and cyrillic symbols can be easy since they are look alike, but it is given since current cyrillic alphabet have been using latin like form since 18th century. On another note Cyrillic alphabet have some additional symbols like https://en.wikipedia.org/wiki/Sje , and some of proposed glyph visually would clash with this one. |
This means an extremely special and unusual feature (#22) is going to be kept in the main version. |
|
@bofm we are planning a different design. still to be determined. we hear your concerns and are trying to balance them with those of the users who requested this change in the first place. |
|
I agree that new "cyrillic" С (S) looks horrible. I completely disagree with previous opinions. Cyrillic symbols should look as it meant to be and this is very bad practice to change such behaviour. This symbol what you created is not cyrillic, there's no such symbol at all. People in Russia just won't understand such behaviour, beacuse this is not the symbol we all know. |
|
@ngleb Let me take a bold step and claim that you won’t need to find a new font. We’re closely thinking about the Cyrillic shapes to find out what is best for most users. What we did by adding a serif to the Es terminal wasn’t right, but we needed some time to find that out. Stay tuned and subscribed to this issue to get updates on this matter. /cc @chrissimpkins |
|
@ngleb Out of interest, are you actually using this glyph in the body of source code or are you viewing it in source comments? Some other body of text? |
|
@jublo Why not keep such changes in experimental branch? With this changes Hack became unusable for me, so I've rolled back 2.015 which don't have'em or switched back to Pragmata Pro. |
|
@vladimir-novoseltsev Vladimir, are you using the Cyrillic |
|
@chrissimpkins I've been using both Latin in Cyrillic in HTML code and until now I've never been able to confuse them :) |
|
@vladimir-novoseltsev So this is the content in your HTML file then? |
|
@chrissimpkins Yeah, I don't have newer hack installed right now. Let me fetch one, so I have similar fragments with old and new versions. |
|
I posted this request to #22:
Please have a read through the above and, for those who are of the opinion that this change should revert to the Latin c glyph appearance, I request that you detail how you are using the Cyrillic version of the glyph in your own source code. Visuals are very, very helpful as are additional details of the problem for non-Cyrillic glyph (and keyboard if you are using special keyboards/keybindings etc) users. Let's better understand the original problem as posted so that we can make an informed decision about this issue. |
|
@vladimir-novoseltsev so for you, the information transmitted to readers is not altered in any way whether this is a Latin or Cyrillic c glyph in the body of the text. They are interchangeable in the rendered HTML or is this not the case? Does the Latin c ever lead to some type of error there? For instance if a user were to copy and paste the text from your HTML page to another document? Can you provide additional details on what keystrokes are necessary to create Latin vs. Cyrillic c glyphs in a text editor? Are there special keybindings that are required for this? |
|
@chrissimpkins All you need for entering Cyrillic is input switch in mine case alt+shift. There are some places in code where strings in Russian are present and theoretical could lead to errors, but you normally do not enter single symbol, you enter a whole line, and with low number of look alike glyphs it is hard to miss if wrong input method is selected, as you'd get garbage if you try to write meaning full text be it English or Russian. |
|
From @ngleb :
|
@vladimir-novoseltsev can you provide some examples outside of the HTML text content context? |
|
Anyone have feedback about this point by @ngleb?
Are we attempting to deal with an issue in the fonts that is a hardware/keybinding problem at its root? |
|
The following regex can be used to find Russian symbols in the code There is no any reason to do horrible things with Russian glyphs. I'm sure that 99.9% of Russian users will agree with me. PS: @vladimir-novoseltsev sorry for initial comment. |
|
@MaxKh Yep, not mine idea to make it ugly :) |
|
@MaxKh The need for a workaround to identify Cyrillic glyphs is the exact point that we are attempting to address. IMO, such workarounds should not be necessary for developers who use this character set and mean that information is being hidden from you. The question is whether this information is necessary for source code development. I understand the visceral response to design as well as the lack of similar "features" in other typefaces. What we are attempting to do in this face is optimize it for source code text. Aesthetics, while important, are a secondary concern. It should be considered another tool in your source development armamentarium along with your editor, syntax highlighter, linters, compilers, and associated development software. You can view this change as a Unicode code point linter built in to the typeface. When I use a linter I see squiggles under words and bold red circles with exclamation points. These are not aesthetically pleasing, disrupt the rhythm of the text, call attention to their existence, and distract from reading (intentionally!) but they serve a purpose and facilitate development. The question that I am attempting to force you to address is whether this is, in fact, a problem that warrants a solution within the design of the typeface. The individual who suggested this in #22 (and others in that thread) introduced us to this concept and supported such a change. What I am hearing here is that it is not visually appealing and should be removed. As someone who has not, and never will, type this glyph in the context of source code I have absolutely no understanding of this problem and am attempting to address it based upon your comments and input. If we take this out of the scope of type, are we dealing with a development application that has an ugly GUI but is extremely useful, or are we dealing with a development application that has an ugly GUI and is useless? I'd venture to guess that we all use the former because it helps us to generate better code or simplifies that development process in some way. If that is the case, we can iterate on the design and attempt something more aesthetically pleasing yet distinct. If it is the latter, then we scrap the attempt altogether and revert to the Latin |
|
@chrissimpkins Also, I can't imagine when Es and C could be mixed. In many cases Cyrillic Es used in text in Russian (also, it can be Ukranian or Kazakh languages and I think some others) and not between some code in Latin. And in most cases in good practice and good code Cyrillic text is separated from Latin text. I agree that font is the instrument. But font is quite different from squiggles. Just imagine the case when latin font will looks unnatural. I think that many people won't like it because of their understanding how it should look, because it is their native language and native symbols which they know from the birth. The same is for Cyrillic. |
@ngleb : This is one of the points that I am attempting to drill down on. Are developers who use Cyrillic glyphs doing so in the body of the source code? Is there compiler, interpreter support for this in languages that you use and is this something that is commonly done if support is there? I understand that this ignores content text areas like the HTML example above and portions of source code files that include comment blocks. Does the Cyrillic Es glyph ever make it into a variable name or some other use scenario in source code? |
|
@chrissimpkins Cyrillic symbols can be used inside strings, which is in source code: But as you can see, this is very specific. |
|
@chrissimpkins It is in general good idea to separate code and strings. |
|
Python 3 supports unicode identifiers. But it is considered a bad practice. |
Are there any scenarios that you can imagine where this would lead to compiler errors and do you need to compile in a different way with Cyrillic (or any expanded Unicode sets) glyphs in strings for languages like C/C++?
This is extremely helpful!
As is this! So, what I gather is that the glyph is not used in the body of source text, except as part of a string in which case it should be surrounded by other Cyrillic glyphs. For this reason, the appearance of a Is this a correct interpretation? |
|
@chrissimpkins I didn't find any escape sequiences with UPD: checked, this won't compile, but vim highlighted this in different way. |
|
@ngleb interesting so your syntax highlighter recognizes the Unicode character set? Does your compiler indicate that this is a Unicode error or what type of message do you get? And does it indicate the position of the problem in the code or just provide a line number? |
|
do your keyboards default to the Cyrillic or the Latin version? My understanding is that they are both mapped to the same key with a different keybinding pattern. |
|
@chrissimpkins I also checked Emacs, this editor do not highlight escape-characters and specifiers (it can be fixed with extension, actually the whole editor consist of such extensions). I can't say anything about Visual Studio or Sublime, but accoding to screenshots from google images search Sublime will highlight escape characters (https://i.stack.imgur.com/y9lSG.jpg). |
|
My default layout is Latin (English US) and this behaviour is the default for most IT guys. Yes, there's different keybinding with different keycodes on the same button. |
|
Well, I see your confusion and maybe for you it all looks like there's a huge problem. But the real situation is that there's no such big problem and in most cases mixing charaters is a bad practice at all and not just with C and Es. Unnatural symbols is much worse than mixing characters. Better to avoid it at all. Example with C-language just show when the problem can appear. In normal ways, especially with multilanguage tools, strings are stored in variables and printf doesn't see Cyrillic. |
|
@ngleb Thank you very much for all of this information Gleb. This is all extremely helpful. |
|
@retgoat, @istarkov, @achkasov, @Bfgeshka - can you comment on the above discussion. There is a push to remove the modification to the Cyrillic es glyph so that it takes the Latin lowercase The arguments are currently supported by these facts that have been discussed in the thread: (1) the glyph is not used (or at the very least it is poor form to use) in source code outside of strings. (2) It is typically surrounded by other Cyrillic glyphs within source code strings. These surrounding glyphs provide context for the Es and indicate that it is a Cyrillic glyph rather than a Latin lowercase c. (3) It may be found in comments within source files; however, these blocks of text should be treated like standard text and not source code because they will not raise compiler errors or lead to interpreter exceptions if a Latin c is used in place of a Cyrillic Es and vice versa. (4) Entry of the Cyrillic version of the shape requires a keybinding and an explicit set of key strokes as most developers who use Cyrillic glyphs have keyboards that are laid out in standard Latin (English US) keys. The default keystroke is therefore to enter an ASCII character that should not lead to the issues in point 3 above. (5) The shape of the glyph is not attractive and calls attention to itself in use. This is not seen as a beneficial feature given the above points. This is in contrast to the opinion expressed by each of you in #22. Please weigh in if you have thoughts that support or contradict the above points or the discussion that has taken place in the thread. |
|
@chrissimpkins I kept an eye on the above discussion. So, my point of view is unchanged. It's nice that cyrillyc |
|
@retgoat any comments about the above points? Do you feel that they are all accurate? |
|
There does not appear to be convincing support for this issue after the above discussion. The Latin |
|
The original Latin c shapes for the upper case and lower case Cyrillic es glyphs are now available in the test font builds in this directory: https://github.com/chrissimpkins/Hack/tree/development/postbuild_processing/posthinted_builds These changes will be included in the upcoming v2.019 release. |
|
Hi, It would be nice to have different glyphs for Latin C and Cyrillic Es (and Latin A and Cyrillic A, Latin B and Cyrillic Ve, etc). However, current Cyrillic Es glyph looks It would be nice to have different glyphs for Latin and Cyrillic letters, but visual aesthetic should not be sacrificed. In my experience I had some troubles with Latin C and Cyrillic Es. It is not related to source code. It could be a problem for searching in databases or texts (in natural languages). For example, you search for "Москва" and have no results, because someone (ten years ago) typed it with Latin C instead of Cyrillic Es. However, nowadays it is very rare case. Also, such problems can be easily fixed by database administrator — as it noted above, usually Latin and Cyrillic letters do not interleave. Thus, replacing that ugly glyph with Latin C glyph is right decision. Until someone create distinct but aesthetic glyphs for Cyrillic alphabet. |
|
thanks |
|
The Cyrillic es glyphs are reverted back to the Latin C/c shapes as of release v2.019 which is now available in the master branch. Thanks to all for your feedback on this issue here. |






This bug was introduced by v2.016 or v2.017. "С" looks good in v2.015.
Here is how C letter looks in Russian layout in v2.017 and v2.018. That strange thing on the top, it should be removed.

Cyrillic C should look the same as Latin C.
The screenshot is captured in Sublime Text 3 on Windows 10.
The text was updated successfully, but these errors were encountered: